Básicamente, estoy recibiendo un error de memoria en python cuando intento realizar una operación algebraica en una matriz numpy. La variable u
, es una matriz grande de doble (en el caso que falla es una matriz de dobles de 288x288x156. Solo recibo este error en este gran caso, pero puedo hacerlo en otras matrices grandes, pero no tan grande). Aquí está el error de 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
es la línea de código que falla.
alpha
es solo un doble, mientras que u
y r
son las matrices grandes descritas anteriormente (ambas del mismo tamaño).
No sé mucho acerca de los errores de memoria, especialmente en Python. ¡Cualquier idea/sugerencia para resolver esto sería muy apreciada!
Gracias
Esto es muy útil, no lo sabía. – tylerthemiler