基本的に、numpy行列で代数演算を実行しようとすると、pythonでメモリエラーが発生します。変数u
は、2倍の大きな行列です(この2倍の288x288x156行列の場合、この巨大なケースでのみこのエラーが発生しますが、これは大きな行列ではありません)。ここではPythonのエラーは次のとおりです。Python/Numpy MemoryError
Traceback (most recent call last):
File "S:\3D_Simulation_Data\Patient SPM Segmentation\20 pc
t perim erosion flattop\SwSim.py", line 121, in __init__
self.mainSimLoop()
File "S:\3D_Simulation_Data\Patient SPM Segmentation\20 pc
t perim erosion flattop\SwSim.py", line 309, in mainSimLoop
u = solver.solve_cg(u,b,tensors,param,fdHold,resid) # Solve the left hand si
de of the equation Au=b with conjugate gradient method to approximate u
File "S:\3D_Simulation_Data\Patient SPM Segmentation\20 pc
t perim erosion flattop\conjugate_getb.py", line 47, in solv
e_cg
u = u + alpha*p
MemoryError
u = u + alpha*p
は失敗し、コードの行です。
alpha
は、単なる倍数であり、u
およびr
は、(同じサイズの両方の)大きな行列です。
私は特にPythonでのメモリエラーについてよく分かりません。これを解決するための洞察力やヒントは非常に高く評価されます。
おかげ
これは非常に役に立ちます。私はこれを知らなかったのです。 – tylerthemiler