如何通过 y1summary 捕获对 y1 的更改?

How to capture changes to y1 via y1summary?

世界,

我想更熟悉 Tensorboard API。

我研究了我在这里找到的脚本:

https://www.tensorflow.org/code/tensorflow/examples/tutorials/mnist/mnist_with_summaries.py

它 运行 在我的笔记本电脑上运行良好。

其中大部分对我来说都很有意义。

于是,我写了一个简单的tensorflow demo:

import tensorflow as tf

sess = tf.Session()

with tf.name_scope('scope0'):
  y1 = tf.Variable(1.1)
  # I should intialize:
  sess.run(tf.initialize_all_variables())
  tf.scalar_summary('y1summary', y1)

merged       = tf.merge_all_summaries()
train_writer = tf.train.SummaryWriter('/tmp/tb4',sess.graph)
step_i       = 0

summary,out1 = sess.run([merged,y1])
train_writer.add_summary(summary, step_i)

step_i += 1
y1   = y1 - 1.1
summary,out1 = sess.run([merged,y1])
train_writer.add_summary(summary, step_i)

step_i += 1
y1   = y1 + 2.1
summary,out1 = sess.run([merged,y1])
train_writer.add_summary(summary, step_i)

train_writer.close()

因此,我 运行 上面的脚本使用 shell 命令:

python tensorboard_demo4.py

它 运行 没有错误。

接下来我运行张量板:

tensorboard --log=/tmp/tb4

运行没有错误。

但是当我查看事件选项卡时, Tensorboard 显示 y1summary 的常数值。

所以,我不了解 Tensorboard 的一些基本知识。

如何增强上述脚本,使 Tensorboard 通过 y1summary 显示对 y1 的更改?

试试这个

import tensorflow as tf

sess = tf.Session()

with tf.name_scope('scope0'):
  y1 = tf.Variable(1.1)
  # I should intialize:
  sess.run(tf.initialize_all_variables())
  tf.scalar_summary('y1summary', y1)

merged       = tf.merge_all_summaries()
train_writer = tf.train.SummaryWriter('/tmp/tb4',sess.graph)
step_i       = 0

summary,out1 = sess.run([merged,y1])
train_writer.add_summary(summary, step_i)

step_i += 1
sess.run(y1.assign(y1 - 1.1))
summary,out1 = sess.run([merged,y1])
train_writer.add_summary(summary, step_i)

step_i += 1
sess.run(y1.assign(y1 + 2.1))
summary,out1 = sess.run([merged,y1])
train_writer.add_summary(summary, step_i)

train_writer.close()

基本上,您需要将新值分配给您正在捕获摘要的变量(在本例中为 y1)。