Basically, I am getting a memory error in python when trying to perform an algebraic operation on a numpy matrix. The variable u
, is a large matrix of double (in the failing case its a 288x288x156 matrix of doubles. I only get this error in this huge case, but I am able to do this on other large matrices, just not this big). Here is the Python error:
Traceback (most recent call last):
File "S:3D_Simulation_DataPatient SPM Segmentation20 pc
t perim erosion flattopSwSim.py", line 121, in __init__
self.mainSimLoop()
File "S:3D_Simulation_DataPatient SPM Segmentation20 pc
t perim erosion flattopSwSim.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_DataPatient SPM Segmentation20 pc
t perim erosion flattopconjugate_getb.py", line 47, in solv
e_cg
u = u + alpha*p
MemoryError
u = u + alpha*p
is the line of code that fails.
alpha
is just a double, while u
and r
are the large matrices described above (both of the same size).
I don't know that much about memory errors especially in Python. Any insight/tips into solving this would be very appreciated!
Thanks
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…