tensorflowのメモリ不足のヒント



Tensorflow Runs Out Memory Tips



プログラムを実行すると、多くの場合、プロンプトに表示されます。

アロケータ(GPU_0_bfc)は、freed_by_count = 0で2.26GiBを割り当てようとしてメモリを使い果たしました。呼び出し元は、これは障害ではないことを示していますが、より多くのメモリが使用可能であれば、パフォーマンスが向上する可能性があることを意味している可能性があります。



まず、基本設定のubutunサーバーを見て、[システム設定]ボタンをクリックし、[詳細]を開くと、次の画面が表示されます。



問題は、合計メモリが30.9GiBで、2.26GiBよりはるかに多いことです(Wikipediaのメモの翻訳によると、1MB = 1024KB、1GB = 1024MB、10進数単位の容量のGB(ギガバイト)、1GBは1,000,000,000バイトに相当します。バイナリ単位使用される容量のGiB(ギガバイト)はギガバイナリバイトで、1,073,741,824バイトに相当します。したがって、160GBのハードドライブは実際には149.0116119GiBのみです)なぜ間違いを報告するのでしょうか。この問題は時間だったので、通常、大規模なプログラムはGPUのディープラーニングで実行され、必要なGPUメモリの不足につながります。これがどのように起こったのでしょうか?最初にコンピュータのメモリを見て、ターミナルnvidia-smiを入力し、次のインターフェイスを参照してください。

GPUのメモリが10989MiB(約10.7GiB)であることを確認してください。問題は、メモリも必要以上に間違いです。2.26GiB大きなああ、どのようにプロンプ​​トを表示しますか?インターネットと主に次のソリューションを見てください。



解決策:1つのバッチサイズの削減、GPUメモリ割り当ての必要性の削減

2.メモリが比較的大きい場合は、CPUを切り替えることができます

3.入力画像サイズをリセットします。つまり、画像サイズを小さくしてメモリの消費を減らします。

上記の方法のいずれかを選択すると、問題は解決できますが、それでもどの原理が安心していたかを知りたいです..次に、(たとえば学習の深さに基づいて)実行時間、プログラムメモリ割り当てのテンソルフローを調べます方法:

https://blog.csdn.net/frankzd/article/details/102621817 (ブログを参照してください、あなたはそれ自身のコードのメモリフットプリントを簡単に分析することができます)私のプログラムはフレームワークGANネットワークであるため、同じフレーム構成とトレーニング方法を持つ以前のCNNはメモリによって促された関連するGPUではありませんでした。 GANネットワークも識別器として扱われました(これはネットワークの重みを追加します)ので、CNNよりも大きなメモリのアカウントになりますか?コメントセクションで知っておくべきことがあれば-翼の友達

通常プログラム内のいくつかの関連する断片には、次のコードがあります。

allow_soft_placementパラメーターがTrueに設定されている場合、GPUで操作を実行できない場合、TensorFlowは自動的にそれをCPUに配置します。セッションでさらにメモリを割り当てることができます。次のように: