मैं अपने मैट्रिक्स (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, 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
इस अपेक्षा की इतनी बड़ी होने के लिए है:
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)
और इस समय का उपयोग कर की कोशिश की है, यह निम्न त्रुटि फेंकता मैट्रिक्स कि न्यूम्पी संभाल नहीं सकता है और क्या ऐसा कुछ है जो मैं इस चरण में पद्धति को बदलने के बिना कर सकता हूं?
एसवीडी की गणना करने की कोशिश करने वाले बिंदु पर पाइथन कितनी मेमोरी है? क्या आप 32-बिट या 64-बिट पायथन चला रहे हैं? –
@ फ़र्डिनेंड बेयर: यह क्रैश होने पर 380 एमबी का उपयोग कर रहा है। आह! :(मैं 32-बिट पायथन का उपयोग कर रहा हूं। मैं आगे बढ़ूंगा और 64-बिट संस्करण स्थापित करूंगा। – Legend
@ फ़र्डिनेंड बेयर: आप एक असली उद्धारकर्ता हैं! किसी भी तरह से उस बिंदु ने मेरे दिमाग को छोड़ दिया। यह अब पूरी तरह से ठीक काम करता है! बहुत धन्यवाद बहुत – Legend