2016-04-08 4 views
0

データの大容量ファイル(7GB)で学習したい:800行、5百万列。だから私はこれらのデータをロードし、私が使用できる形式(2Dリストまたは配列)にしたいと思います。イテレータまたはチャンクなしで大量のデータをロード

問題は、私は、この種のを使用する方法について多くのことを聞いた私は、データをロードし、それらを格納しようとすると、彼らはすべて私の記憶(12ギガバイト)を使用し、ちょうど行500

で停止し、ここにありますチャンクとイテレーターを使用するようなデータがありますが、それらを完全にメモリにロードしてクロス検証を行うことができます。 私はパンダを使って私を助けようとしましたが、問題は同じです。

7GBのデータをすべてロードして保存する際に問題がありますか?または私を助けることができる他のアイデア?

+0

他のリソースの使用量を差し引いて12 GBのRAMが残っていますか? – timgeb

+6

とにかく、すべてをメモリにロードしたいのに十分なメモリがない場合、答えはより多くのメモリを購入することです。何らかの形でデータを圧縮する。 – timgeb

+0

は、あなたが何をしたいかによって決まります。途中で分割されたデータがパーツにロードされ、毎回1つのパーツがロードされます。 – galaxyan

答えて

0

スワップファイルまたはページファイルを取得できます。オペレーティングシステムによっては、仮想メモリを使用して、システムが物理メモリよりも多くのオブジェクトを単一プロセスで処理できるようにすることができます。 working setの大きさによっては、パフォーマンスがそれほど損なわれないこともあれば、恐ろしいこともあります。 しかし、メモリを増やすことや、(チャンク化と呼ばれるものに似た)パーティション化戦略を使用することが、あなたの問題を解決するためのより良い解決策であることはほぼ確実です。

Windowsでは、ページファイルのサイズを調整する方法については、hereを参照してください。 Redhat Linuxの場合、スワップの追加についてはthis linkを試してください。

関連する問題