如何将任意值添加到 TensorFlow 摘要?
How do I add an arbitrary value to a TensorFlow summary?
为了将简单值 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
添加为摘要吗?
你可以自己构建摘要,喜欢
from tensorflow.core.framework import summary_pb2
value = summary_pb2.Summary.Value(tag="Accuracy", simple_value=0.95)
summary = summary_pb2.Summary(value=[value])
然后您可以像在代码中一样使用 add_summary
添加 summary
。
这是另一个(可能稍微更新一些)解决方案 tf.Summary.FileWriter class:
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()
为了将简单值 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
添加为摘要吗?
你可以自己构建摘要,喜欢
from tensorflow.core.framework import summary_pb2
value = summary_pb2.Summary.Value(tag="Accuracy", simple_value=0.95)
summary = summary_pb2.Summary(value=[value])
然后您可以像在代码中一样使用 add_summary
添加 summary
。
这是另一个(可能稍微更新一些)解决方案 tf.Summary.FileWriter class:
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()