2017-12-07 13 views
0

私はトレーニングのための複雑な損失関数を持っていますが、評価のためのより単純なテンソルフローグラフを持っています(それらは祖先を共有します)。本質的には特定のブランチのまとめ

train_op = ... (needs more things in feed_dict etc.) 
acc = .... (just needs one value for placeholer) 

これまでの状況をよりよく理解するために、私は要約を追加しました。しかし

merged = tf.summary.merge_all() 

、その後

(summ, acc) = session.run([merged, acc_eval], feed_dict={..}) 

を呼び出すと、tensorflowは、プレースホルダの値が欠落していると文句を言い。

答えて

1

あなたの質問を理解する限り、特定のテンソルフロー操作を要約するには、具体的に実行する必要があります。例えば

# define accuracy ops 
correct_prediction = tf.equal(tf.argmax(Y, axis=1), tf.argmax(Y_labels, axis=1)) 
accuracy = tf.reduce_mean(tf.cast(correct_prediction, dtype=tf.float32)) 

# summary_accuracy is the Summary protocol buffer you need to run, 
# instead of merge_all(), if you want to summary specific ops 
summary_accuracy = tf.summary.scalar('testing_accuracy', accuracy) 

# define writer file 
sess.run(tf.global_variables_initializer()) 
test_writer = tf.summary.FileWriter('log/test', sess.graph) 

(summ, acc) = sess.run([summary_accuracy, accuracy], feed_dict={..}) 
test_writer.add_summary(summ) 

また、あなたがtf.summary.merge()which is documented hereを使用することができます。
このヘルプが必要です。

関連する問題