意思就是說,如果我有如下圖所示:TensorFlow:每個會話是否在圖表中啓動不同批次的數據?
print sess.run(logits)
print sess.run(end_points['Predictions'])
print sess.run(predictions)
print sess.run(labels)
務必:
images, labels = load_batch(...)
with slim.arg_scope(inception_resnet_v2_arg_scope()):
logits, end_points = inception_resnet_v2(images, num_classes = dataset.num_classes, is_training = True)
predictions = tf.argmax(end_points['Predictions'], 1)
accuracy, accuracy_update = tf.contrib.metrics.streaming_accuracy(predictions, labels)
....
train_op = slim.learning.create_train_op(...)
,並在圖形範圍內主管managed_session
爲sess
,我運行在一段時間之後每隔一段時間他們實際上會爲每次運行調用不同的批次,因爲批量張量必須從load_batch
開始,然後才能達到logits
,predictions
或labels
?因爲現在當我運行這些會話時,我得到一個非常混亂的結果,即使預測結果不匹配tf.argmax(end_points['Predictions'], 1)
,儘管模型的準確性很高,但我沒有得到任何遠程甚至與標籤匹配的預測種類很精確。因此我懷疑sess.run
的每個結果可能來自不同批次的數據。
這引出我的下一個問題:有沒有辦法檢查圖形不同部分的結果,當一批從load_batch一直到train_op時,實際運行sess.run
?換句話說,有沒有辦法做我想做的事情,而不需要另外撥打sess.run
?
另外,如果我以這種方式使用sess.run檢查結果,是否會影響我的訓練,因爲有些批次的數據會被跳過而不能到達train_op?