2016-08-15 6 views
0

Tensorflow r0.9/r.10を使用しています。次のメッセージが表示され、私の神経ネットワークモデルが間違った方法で設定されているかどうか心配です。TensorFlow PoolAllocator膨大な数のリクエスト

I tensorflow/core/common_runtime/gpu/pool_allocator.cc:244] PoolAllocator: After 6206792 get requests, put_count=6206802 evicted_count=5000 eviction_rate=0.000805568 and unsatisfied allocation rate=0.000806536 

私が使用するネットワークは、私がかつて呼び出された関数内の変数とOPSを作成し、同じomptimizer、損失および予測関数を呼び出し、複数のエポック以上、私はちょうどループ、AlexNet/VGG-Mに似ていますそれぞれのミニバッチ反復に対して

もう1つのことは、大規模なバッチサイズを使用するとネットワークが不安定になる可能性があることです。数エポックで正常に動作し、メモリ不足になります。

何か問題があるかどうかを確認する方法はありますか?

答えて

0

これは情報レベルのログステートメント( "I"接頭辞)です。しかし、必ずしも間違っていることを意味するわけではありませんが、プールアロケータ(割り当て用のキャッシュ)は、頻繁に基礎となるアロケータに後戻りする必要があることを発見しています。これはメモリ圧を示している可能性があります。

あなたの不安定性の問題について:あなたが観察するように、大きなバッチはメモリ不足のエラーにつながる可能性があります。オペレータのスケジューリングには非決定性があります。そのため、毎回失敗するとは見えません。バッチサイズを小さくして、一貫してメモリエラーがなくならないようにしてください。

+0

@ peter-hawkinsさん、ありがとうございました。私はすでにそれを行い、安定したトレーニングを受けていますが、これは私の好奇心を満たすものではありません。私は何がうまくいくのかは、どんな操作が最も多くのメモリを割り当てるのか見ることです。LRN演算子はGPUが実装されていないことが分かったので、CPU上でしか動作しませんでした。高いCPU使用率。オペレータがますます多くの変数を生成する場合、どのようなプロファイリングが最適なのでしょうか(どのような提案も歓迎です)。 – Alvise

関連する問題