2017-06-26 3 views
-1

Ich benutze Anaconda2 mit Python 2.7 in 64-Bit-Wind10 mit RAM von 4G. Meine Codes sind wie folgt:Python: MemoryError beim Generieren eines Arrays

number_of_documents = 21578 
document_max_num_words = 100 
num_features = 500 
X = np.zeros(shape=(number_of_documents, document_max_num_words, num_features)).astype('float32') 

Bei der Generierung von x tritt der Speicherfehler auf.

+0

Aber verwenden Sie eine 64-Bit-Version von Python? –

+3

Beachten Sie außerdem, da Sie 'astype' auf das Ergebnis Ihres Aufrufs von' numpy.zeros' verwenden, wird zuerst ein Array von Floats Ihres Standard-Float-Typs erstellt, der 'np.float64' sein kann über '1578 * 100 * 500 * 8 * 1e-9 == 8.6312' Gigabyte Speicher. Es muss dann eine Kopie machen, also werden diese 8 Gigs plus etwa 4 Gigs für die Kopie benötigt. Verwenden Sie das Argument 'dtype' für' np.zeros' anstelle von 'astype', wenn Sie weniger als 8 GB Speicher haben. –

+1

Was ist das Ergebnis von 'import sys; drucken (sys.version) '? –

Antwort

0

Sie haben gerade keinen Speicher mehr, also können Sie Swap verwenden. Obwohl die Verwendung von Swap-Speicher viel langsamer ist als die Verwendung von physischem Speicher, kann es funktionieren, oder?

Unter diesem Link finden Sie Informationen zum Einstellen des Auslagerungsspeichers.

How to Add a Swap File On Ubuntu Linux

Verwandte Themen