2017-06-26 16 views
-1

64ビットwind10でpython 2.7でanaconda2を使用し、4GのRAMを使用しています。私のコードは次の通りです:Python:配列を生成する際にMemoryErrorが発生する

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') 

xを生成すると、メモリエラーが発生します。

+0

しかし、64ビットのPythonビルドを使用していますか? –

+3

また、 'numpy.zeros'の呼び出しの結果に' astype'を使用しているので、デフォルトのfloat型の浮動小数点数の配列を作成します。これは 'np.float64'かもしれません。約1578 * 100 * 500 * 8 * 1e-9 == 8.6312ギガバイトのメモリ。その後、コピーを作成する必要がありますので、コピーには約8ギガプラス約4ギグが必要になります。もしあなたが8ギガバイト未満のメモリを持っているならば 'astype'ではなく' np.zeros'に 'dtype'引数を使います。 –

+1

'import sysの結果は何ですか? print(sys.version) '? –

答えて

0

メモリが不足しているだけなので、スワップを使用することができます。スワップメモリ​​を使用するのは物理メモリを使用するよりもはるかに遅いですが、動作しますか?

スワップメモリ​​の設定方法を確認するには、このリンクを参照してください。

How to Add a Swap File On Ubuntu Linux

関連する問題