Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging 如何向TensorFlow摘要添加任意值?_Logging_Tensorflow_Tensorboard - Fatal编程技术网

Logging 如何向TensorFlow摘要添加任意值?

Logging 如何向TensorFlow摘要添加任意值?,logging,tensorflow,tensorboard,Logging,Tensorflow,Tensorboard,为了将一个简单的值val记录到TensorBoard摘要中,我需要 val = 5 test_writer.add_summary(sess.run(tf.scalar_summary('test', val)), global_step) 是 确实需要将val添加为摘要吗?您可以自己构建摘要,如 from tensorflow.core.framework import summary_pb2 value = summary_pb2.Summary.Value(tag="Accuracy"

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

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


确实需要将
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类的另一个(可能稍微更新一点)解决方案:

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。摘要操作的一个示例是
tf.summary.merge\u all()

注意:您必须等待FileWriter刷新,以便它显示在事件文件中。您可以通过调用
summary\u 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()

在@Peteris回答:是的,看起来像是重复的。在这里检查这个有用的解决方案:FileWriter.add\u事件非常有用,如果想要更改序列化的wall\u时间
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()