10

为了将一个简单的值记录val到 TensorBoard 摘要中,我需要

val = 5
test_writer.add_summary(sess.run(tf.scalar_summary('test', val)), global_step)

sess.run(tf.scalar_summary('test', val))

真的有必要val添加为摘要吗?

4

2 回答 2

12

这是 tf.Summary.FileWriter 类的另一个(可能是最新的)解决方案:

summary_writer = tf.summary.FileWriter(logdir=output_dir)
value = tf.Summary.Value(tag='variable name', simple_value=value)
summary_writer.add_event(summary=tf.summary.Event(tf.Summary([value]),
                         wall_time=time.time(),
                         step=global_step))

然后你可以这样创建你的 SummarySaverHook:

summary_hook = tf.train.SummarySaverHook(
    summary_writer=summary_writer,
    summary_op=your_summary_op)

您可以将其传递给 MonitoredTrainingSession。summary_op 的一个例子是tf.summary.merge_all()

注意:您必须等待 FileWriter 刷新,它才会出现在您的事件文件中。你可以通过调用强制它summary_writer.flush()


一个更简单的解决方案:

summary_writer = tf.summary.FileWriter(output_dir)
summary = tf.Summary()
summary.value.add(tag='name of var', simple_value=value)
summary_writer.add_summary(summary, global_step)
summary_writer.flush()
于 2017-07-10T23:22:10.883 回答
7

您可以自己构建摘要,例如

from tensorflow.core.framework import summary_pb2

value = summary_pb2.Summary.Value(tag="Accuracy", simple_value=0.95)
summary = summary_pb2.Summary(value=[value])

然后,您可以在代码中添加summary使用add_summarylike 。

于 2016-05-30T19:35:46.697 回答