如何手动创建 tf.Summary()
How to manually create a tf.Summary()
我经常想记录 python 个变量——而不是 tf 张量。
文档中说 "you can pass a tf.Summary
protocol buffer that you populate with your own data" 但没有 tf.Summary
的文档,我不知道如何使用它。
有人知道如何以这种方式创建标量摘要吗?
如果你想记录一个 python 值,你必须创建一个占位符,当 运行 tf.Summary
op.
时必须提供该占位符
这是截取的代码
value_ = tf.placeholder(tf.float32, [])
summary_op = tf.scalar_summary("value_log", value_)
my_python_variable = 10
# define everything else you need...
# ...
with tf.Session() as sess:
for i in range(0, 10):
sess.run(summary_op, feed_dict={value_: my_python_variable*i})
您可以在 Python 程序中创建一个 tf.Summary
对象并将其写入相同的 tf.summary.FileWriter
object that takes your TensorFlow-produced summaries using the SummaryWriter.add_summary()
方法。
tf.Summary
class 是 Python protocol buffer wrapper for the Summary
protocol buffer. Each Summary
contains a list of tf.Summary.Value
protocol buffers, which each have a tag and a either a "simple" (floating-point scalar) value, an image, a histogram, or an audio snippet。例如,您可以从 Python 对象生成标量摘要,如下所示:
writer = tf.train.SummaryWriter(...)
value = 37.0
summary = tf.Summary(value=[
tf.Summary.Value(tag="summary_tag", simple_value=value),
])
writer.add_summary(summary)
我需要在训练期间对自定义摘要变量进行多次更新,所以我这样实现:
循环前:
writer = tf.summary.FileWriter(log_folder)
accuracy = None
accuracy_summary = tf.Summary()
accuracy_summary.value.add(tag='accuracy', simple_value=accuracy)
循环内部:
if i%20000 == 0:
accuracy = get_accuracy()
accuracy_summary.value[0].simple_value = accuracy
writer.add_summary(accuracy_summary, i)
我假设 value
的索引按照变量添加到摘要的顺序排列。
我经常想记录 python 个变量——而不是 tf 张量。
文档中说 "you can pass a tf.Summary
protocol buffer that you populate with your own data" 但没有 tf.Summary
的文档,我不知道如何使用它。
有人知道如何以这种方式创建标量摘要吗?
如果你想记录一个 python 值,你必须创建一个占位符,当 运行 tf.Summary
op.
这是截取的代码
value_ = tf.placeholder(tf.float32, [])
summary_op = tf.scalar_summary("value_log", value_)
my_python_variable = 10
# define everything else you need...
# ...
with tf.Session() as sess:
for i in range(0, 10):
sess.run(summary_op, feed_dict={value_: my_python_variable*i})
您可以在 Python 程序中创建一个 tf.Summary
对象并将其写入相同的 tf.summary.FileWriter
object that takes your TensorFlow-produced summaries using the SummaryWriter.add_summary()
方法。
tf.Summary
class 是 Python protocol buffer wrapper for the Summary
protocol buffer. Each Summary
contains a list of tf.Summary.Value
protocol buffers, which each have a tag and a either a "simple" (floating-point scalar) value, an image, a histogram, or an audio snippet。例如,您可以从 Python 对象生成标量摘要,如下所示:
writer = tf.train.SummaryWriter(...)
value = 37.0
summary = tf.Summary(value=[
tf.Summary.Value(tag="summary_tag", simple_value=value),
])
writer.add_summary(summary)
我需要在训练期间对自定义摘要变量进行多次更新,所以我这样实现:
循环前:
writer = tf.summary.FileWriter(log_folder)
accuracy = None
accuracy_summary = tf.Summary()
accuracy_summary.value.add(tag='accuracy', simple_value=accuracy)
循环内部:
if i%20000 == 0:
accuracy = get_accuracy()
accuracy_summary.value[0].simple_value = accuracy
writer.add_summary(accuracy_summary, i)
我假设 value
的索引按照变量添加到摘要的顺序排列。