2017-10-09 11 views
2

私は、テンソルフローを持つ畳み込みニューラルネットワークの最初のテストを行っています。私は、プログラミングガイドのキューランナーとの推奨方法を適用しました(下記のセッション定義を参照)。出力はcnnからの最後の結果です(ここでは最後のステップのみです)。 label_batch_vectorはトレーニングラベルのバッチです。トレーニングセット全体の精度を計算する

output = tf.matmul(h_pool2_flat, W_fc1) + b_fc1 
label_batch_vector = tf.one_hot(label_batch, 33) 

correct_prediction = tf.equal(tf.argmax(output, 1), tf.argmax(label_batch_vector, 1)) 
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32)) 

init_op = tf.group(tf.global_variables_initializer(), tf.local_variables_initializer()) 

print_accuracy = tf.Print(accuracy, [accuracy]) 

# Create a session for running operations in the Graph. 
sess = tf.Session() 

# Initialize the variables (like the epoch counter). 
sess.run(init_op) 

# Start input enqueue threads. 
coord = tf.train.Coordinator() 
threads = tf.train.start_queue_runners(sess=sess, coord=coord) 

try: 
    while not coord.should_stop(): 
     # Run training steps or whatever 
     sess.run(train_step) 
     sess.run(print_accuracy) 

except tf.errors.OutOfRangeError: 
    print('Done training -- epoch limit reached') 
finally: 
    # When done, ask the threads to stop. 
    coord.request_stop() 

# Wait for threads to finish. 
coord.join(threads) 
sess.close() 

私の問題は、精度が各バッチで計算され、各エポックごとに計算されることです。私は次のことを行う必要があります:epoch_accuracyテンソルを初期化する。epochで計算されたバッチ精度のそれぞれをepoch_accuracyに追加する。エポックショーの最後に、計算されたトレーニングセットの精度が示されます。しかし、私が実装したこのキュースレッド(実際にはTensorFlowから推奨されるメソッド)を使って、このような例は見つけられません。誰も助けることができますか?

答えて

0

データストリーム(ここでは一連のバッチ)の精度を計算するには、テンソルフローでtf.metrics.accuracy関数を使用できます。 tf.metrics(AUC、リコールなどのすべての関数:

sess.run(accuracy) 

PS:here

あなたは次にあなたがこの方法の精度を更新することができ、この

_, accuracy = tf.metrics.accuracy(y_true, y_pred) 

のようなオペアンプを定義し、そのドキュメントを参照してください。 )サポートストリーミング

+0

まだテストしていませんが、私はすべてのエポックの単一の値を計算する気がします。私は各時代の価値が必要です。 – Cristi

+0

私は今、テストして、入力を生成する方法を与えました。エポックごとに計算するのはそれほど簡単ではありません。 – Cristi

+0

私は質問があります:ネットワークモデルの重みは、各バッチ後にsess.run(train_step)に続いて継続的に更新されています。次に、精度として計算されるのは、データセット全体の最新の重みによる精度ではなく、現時点までの重みの変更による計算精度の平均としての精度ですか?私は正しく理解しましたか? – Cristi

関連する問題