基本用法
首先明确summary也是op
输出网络结构
sess = tf.Session()
writer = tf.summary.FileWriter(dir,sess.graph)
然后运行
tensorboard --logdir="dir"
然后用google浏览器打开他给的网址就可以了。
例程
los = ...
tf.summary.scalar("loss",loss)
merged = tf.summary.merge_all()
init = tf.global_variable_initializer()
sess = tf.Session()
writer = tf.summary.FileWriter(your_dir, sess.graph)
sess.run(init)
for i in xrange(100):
_,summary = sess.run([train_op,merged_summary], feed_dict)
writer.add_summary(summary, i) #一定要加这句,不然就只有graphs
函数介绍
- tf.summary.merge_all: 将之前定义的所有summary op整合到一起
- FileWriter: 创建一个file writer用来向硬盘写summary数据,
- tf.summary.scalar(summary_tags, Tensor/variable, collections=None): 用于标量的 summary
- tf.summary.image(tag, tensor, #images=3, collections=None, name=None):tensor,必须4维,形状[batch_size, height, width, channels],#images(最多只能生成3张图片的summary),觉着这个用在卷积中的kernel可视化很好用.#images确定了生成的图片是[#images ,height, width, channels],还有一点就是,TensorBord中看到的image summary永远是最后一个global step的
- tf.summary.histogram(tag, values, collections=None, name=None):values,任意形状的tensor,生成直方图summary
- tf.summary.audio(tag, tensor, sample_rate, max_outputs=3, collections=None, name=None)
解释collections参数:它是一个list,如果不指定collections, 那么此summary会被添加到tf.GraphKeys.SUMMARIES中,如果指定了,就会放在的collections中。
- add_summary函数:向
FileWriter
对象的缓存中存放event data,要是不使用这个函数就没有数据,tensorboard无法显示scalar和直方图
注意:
- 如果执行一次,
disk
上没有保存Summary
数据的话,可以尝试下file_writer.flush()
- 如果想要生成的summary有层次的话,记得在
summary
外面加一个name_scope,如:
with tf.name_scope("summary_gradients"):
tf.summary.histgram("name", gradients)