Значение сказать, если у меня есть следующий график, как:TensorFlow: запускает ли каждый сеанс отдельную партию данных на графике?
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
в контексте графика, я запускаю следующее каждый раз в то время:
print sess.run(logits)
print sess.run(end_points['Predictions'])
print sess.run(predictions)
print sess.run(labels)
Do они на самом деле звонят в разные партии для каждого сеанса 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?