2016-07-26 25 views
3

私はTensorFlowを使用しているPythonアプリケーションを持っていますが、Dockerコンテナの内部で実行しています。ローカルで実行すると、メモリ使用量は4GBのRAMの下で十分に維持されますが、書き込まれ処理される大きなファイルがあります。 TensorFlowは、その最初のチェックポイントファイルを作成するためのポイントに到達したとき、私は次の例外を取得:VirtualBoxメモリ例外 - TensorFlowとDockerを使用したstd :: bad_alloc

terminate called after throwing an instance of 'std::bad_alloc' 
    what(): std::bad_alloc 

を私のモデルはので、このファイルは1ギガバイトを超えることも複雑ですが、また、私はすでに30ギガバイトについてダウンロードしたので、私のデータは、画像ですモデルの実行を開始するだけのデータがあるので、偶然にもこれが起こっているのか、このファイルが実際には大きすぎるのか分かりません。私はエポックごとのモデル訓練のために小さなバッチのイメージをメモリにロードしているので、RAM使用量を低く抑えようとしています。私のVirtualBoxの設定がそうのようになります。

enter image description here

エラーはので、私はそれが内部TensorFlowコードから来るのを前提とC++を使用しているように見えます。誰かがこのようなことを見たか、私が何を変えることができるか知っていますか十分なRAMが割り当てられていると感じますが、ディスクアクセスが正しく設定されていない可能性があります。

答えて

0

RAMが不足している可能性があります。 4GBは、トレーニング用にTensorFlow(特にデフォルトインストールのPythonで)を実行するために非常に小さいです。あなたのモデルサイズは1GBを下回っているかもしれませんが、トレーニング中やチェックポイントを書くときに、TensorFlowは一時的にバッファリングに多くのメモリを割り当てますが、おそらくOOMエラーが発生しています。チェックポイントまで4GBで正常に実行すると、8GBが正常に動作するはずです。

関連する問題