По сути, я получаю ошибку памяти в python при попытке выполнить алгебраическую операцию над матрицей с нулевой точкой. Переменная u
представляет собой большую матрицу типа double (в случае неудачи это матрица двойных чисел 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. Любое понимание / советы по решению этого будет очень признателен!
Спасибо