在验证数据上使用tf.train.Supervisor的默认summary_op?

时间:2016-12-28 16:43:21

标签: tensorflow

我正在使用具有两个占位符的分类器,一个用于我的输入功能,一个用于输出标签。为了将数据放入图表中,我将ndarray放入feed_dict中。如何使用tf.train.Supervisor评估验证数据模型,而无需手动评估summary_op?是否只能使用reader而不是feed_dicts?

这是我目前的解决方法,我正在检查已用时间并手动评估summary_op

import time

import tensorflow as tf

t = time.time()
summary_op = tf.summary.merge_all()
sv = tf.train.Supervisor(logdir="tensorboard/my-run", summary_op=None)
with sv.managed_session() as sess:
    for data in training_data:

        # Fit training data.
        sess.run(train_op, feed_dict={'input:0': data[0], 'output:0': data[1]})

        # Evaluate on validation data.
        if time.time() - t > 60.0:
            t = time.time()
            data = next(validation_data)
            summary = sess.run(summary_op, feed_dict={'input:0': data[0], 'output:0': data[1]})
            sv.summary_computed(sess, summary)

2 个答案:

答案 0 :(得分:2)

编辑:tf.train.Supervisor可能会被弃用,所以没关系。请参阅this评论。

轻微清洁的一件事是使用tf.train.Supervisor.loop而不是手动检查已用时间。

import tensorflow as tf

summary_op = tf.summary.merge_all()
sv = tf.train.Supervisor(logdir="tensorboard/my-run", summary_op=None)
with sv.managed_session() as sess:
    sv.loop(60, lambda: sv.summary_computed(sess, sess.run(summary_op, feed_dict=next(validation_data))))
    for data in training_data:
        sess.run(train_op, feed_dict=data)

答案 1 :(得分:-1)

您可以使用解决方法。这应该有用。

雪利酒