Python / Numpy MemoryError

В принципе, я получаю ошибку памяти в python при попытке выполнить алгебраическую операцию с матрицей numpy. Переменная u , представляет собой большую матрицу двойных чисел (в неудачном случае это матрица двойных чисел 288x288x156. Я получаю эту ошибку только в этом огромном случае, но я могу сделать это с другими большими матрицами, только не такими большими Вот ошибка Python:

 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. Любые идеи / советы по решению этой проблемы были бы очень признательны!

Спасибо

23
задан ali_m 24 March 2015 в 23:45
поделиться