2017-08-17 9 views
0

私はTensorFlowのDeep MNIST for Expertsに出会い、GPUで効率的に使用するためにそれを適用したいと考えました。 feed_dictは非常に遅いようですので、モデルにデータを入力するためにtf.train.shuffle_batchFIFOQueueを使用して入力パイプラインを実装しました。TensorFlowのMNISTの実装で問題が発生しました。キューを使用したfeed_dictなし

Here's a Gist with the stock implementation of the TensorFlow guidehere's a Gist with my attempt at an optimized implementation.

TensorFlowページ上の例では、精度はかなり早く、数千回の反復後の1に近づきます。しかし、私のコードでは、キューの実装を除いて同じモデルですが、精度は〜0.05〜0.15の間で変動するようです。さらに、数百回の反復後に損失は約2.3に達し、それよりはるかに遠くまで減少しない。

もう1つ注目すべき点は、作成した元のバッチと比較し、その後の反復で使用されたバッチが同等であると思われる点です。おそらく問題は私のキューイング/デキューイングにありますが、私はそれをどのように修正するのか本当に分かりません。誰かが私の実装で何か問題を見ている場合、いくつかのポインタは非常に高く評価されるだろう!

答えて

0

解決策が見つかりました。暗黙のうちにtf.train.shuffle_batchRandomShuffleQueueを実装しています。 FIFOQueuetf.train.shuffle_batchの結果をロードすると、FIFOQueueに渡されなかったためにラベルが更新されている間に、FIFOQueueが入力バッチを更新しない可能性があります。 FIFOQueueを削除すると、私の問題は完全に解決されました。

関連する問題