十一. Tensorboard

本篇博客记录tensorboardtf.summary的基本使用。

tensorboard可视化听起来很酷炫,但实际上很简单:

在模型中插入一些记录数据的代码,使得一些关键数据可以保存成某种文件格式,再打开tensorboard应用,应用会自动加载这些文件,再在浏览器上以图像展示。

保存关键数据的代码都在tf.summary中。

主要用到:

  • tf.summary.scalar
  • tf.summary.histogram
  • tf.summary.merge_all
  • tf.summary.FileWriter

还是通过一个简单的优化问题来解释代码:

1
2
3
4
5
6
7
8
9
10
11
12
import tensorflow as tf

x = tf.Variable(tf.truncated_normal([]))
# 保存x
tf.summary.scalar('x', x)
goal = tf.pow(x-3,2)
# 保存goal
tf.summary.scalar('goal', goal)
optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.1)
train_step = optimizer.minimize(goal)
# 把所有summary合并, fetch时只需fetch合并的即可
merged = tf.summary.merge_all()
1
2
3
4
5
6
7
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
# 初始化summary writer
writer = tf.summary.FileWriter("tmp" ,sess.graph)
for i in range(10):
_, merged_summary = sess.run([train_step, merged])
writer.add_summary(merged_summary, i)

运行完代码以后,就可以看到tmp目录下,多了一个events.out.tfevents.xxx文件。
这个时候,我们就可以启动tensorboard了:

1
tensorboard --logdir=path/to/log-directory

如果不想去tensorflow目录下找tensorboard,也可以直接pip install tensorboard。

在这里,输入

1
tensorboard --logdir=tmp

按照log的提示,打开浏览器,输入http://127.0.1.1:6006