2017-06-27 12 views
1

は、私は新しい数回(MNISTデータセットとTensorFlow付き)畳み込みニューラルネットワークを訓練し、たびに精度のと同じ結果を取得したいです。TensorFlowを使用してCNN(MNISTデータセット)をトレーニングするたびに、同じ損失値を取得する方法は?

  1. 保存ネット訓練を受けていないだけで初期化(global_variables_initializer)
  2. ロード私はトレーニングにこの訓練を受けていないネット
  3. セットmnist.train.next_batchシャッフル= Falseのを起動するたびに、そのイメージシーケンス:この私を取得するには毎回同じです

私はフィードフォワードネット(3つの隠しレイヤー)でこれを行いました。このpythonスクリプトを実行するたびに、私は損失と正確さについて全く同じ値を取得します。

しかし、私は少し異なる損失/精度スクリプトを実行するたびに、フィードフォワードネットから畳み込みニューラルネットにモデルを変更して "同じ"スクリプト。

だから私は1つにバッチサイズを縮小し、各画像損失値を探して、最初の2枚の画像が常に同じ損失値を持っていますが、残りは、私は少し異なるスクリプトを実行するたびにあることがわかります。

理由は何ですか? @AlexandrePassosコメントへ

+0

あなたはドロップアウト層を追加しましたか? – danche

+0

コンバージョンレイヤを自分で作成するのか、組み込みのコンバージョンレイヤを使用していますか? –

+0

@ダンシェまず最初に私はドロップアウトしましたが、現時点で私はそれを削除しました – Freundlicher

答えて

0

おかげで、私はTensorFlowで決定論/非決定論的オペレーションを検索します。

ので、現時点ではCUDAのアトミックを使用し、GPU上で実行されているすべての操作は、非決定論的です。
は、このリンクを参照してください:https://github.com/tensorflow/tensorflow/issues/3103

誰かがGPU上と決定論的操作でTensorFlowでCNNを実現する方法を知っている場合、してください:How to create a CNN with deterministic operations in TensorFlow on a GPU?

関連する問題