Я пытаюсь применить SVD к моей матрице (3241 x 12596), которая была получена после некоторой обработки текста (с конечной целью выполнения скрытого семантического анализа), и я не могу понять, почему это происходит как мой 64-разрядный Машина имеет 16 ГБ оперативной памяти. Момент svd(self.A)
вызывается, выдает ошибку. Точная ошибка приведена ниже:
Traceback (most recent call last):
File ".\SVD.py", line 985, in <module>
_svd.calc()
File ".\SVD.py", line 534, in calc
self.U, self.S, self.Vt = svd(self.A)
File "C:\Python26\lib\site-packages\scipy\linalg\decomp_svd.py", line 81, in svd
overwrite_a = overwrite_a)
MemoryError
Итак, я попытался использовать
self.U, self.S, self.Vt = svd(self.A, full_matrices= False)
и на этот раз выдает следующую ошибку:
Traceback (most recent call last):
File ".\SVD.py", line 985, in <module>
_svd.calc()
File ".\SVD.py", line 534, in calc
self.U, self.S, self.Vt = svd(self.A, full_matrices= False)
File "C:\Python26\lib\site-packages\scipy\linalg\decomp_svd.py", line 71, in svd
return numpy.linalg.svd(a, full_matrices=0, compute_uv=compute_uv)
File "C:\Python26\lib\site-packages\numpy\linalg\linalg.py", line 1317, in svd
work = zeros((lwork,), t)
MemoryError
Предполагается, что это такая большая матрица, с которой Нампи не может справиться, и есть ли что-то, что я могу сделать на этом этапе без изменения самой методологии?