Tensorboard Primer Plus(一)

这篇主要是详细介绍TensorBoard相关功能,熟练使用TensorBoard能提高对模型训练过程的理解

一、计算图的结构

首先,先放出Github的TensorBoard项目:GitHub地址,下面代码定义了一个简单的用于实现向量加法的计算图:

import tensorflow as tf

input1 = tf.constant([1.0, 2.0, 3.0], name = "input1")
input2 = tf.Variable(tf.random_uniform([3]), name = "input2")
output = tf.add_n([input1, input2], name = "add")

# 其中,input1为常量,input2为变量

writer = tf.summary.FileWriter("./log", tf.get_default_graph())
# 这里生成了一个具有写权限的日志文件操作对象,将当前命名空间的计算图写进日志中

writer.close()

运行以上代码后,会在目的路径下产生日志文件,然后就可以用如下的命令来启动TensorBoard服务:

python3 code.py --logdir=./log 

根据上述内容描述,tensorboard的启动过程可以概括为以下几步: 

1.创建writer,写日志文件 writer=tf.summary.FileWriter('/path/to/logs', tf.get_default_graph())

2.保存日志文件 writer.close()  

3.运行可视化命令,启动服务 tensorboard –logdir /path/to/logs

4.打开可视化界面 通过浏览器打开服务器访问端口http://localhost:6006

下面是TensorBoard的主界面:

此版本的tensorboard导航栏中只显示有内容的栏目,如GRAPHS,其他没有相关数据的子栏目都隐藏在INACTIVE栏目中,点击这些子栏目则会显示一条如图4所示的提示信息,指示使用者如何序列化相关数据。除此之外,在栏目的数量上也有增加,新增了DISTRIBUTIONS、PROJECTOR、TEXT、PR CURVES、PROFILE五个栏目。

Tensorboard的可视化功能很丰富。SCALARS栏目展示各标量在训练过程中的变化趋势,如accuracy、cross entropy、learning_rate、网络各层的bias和weights等标量。如果输入数据中存在图片、视频,那么在IMAGES栏目和AUDIO栏目下可以看到对应格式的输入数据。在GRAPHS栏目中可以看到整个模型计算图结构。在HISTOGRAM栏目中可以看到各变量(如:activations、gradients,weights 等变量)随着训练轮数的数值分布,横轴上越靠前就是越新的轮数的结果。DISTRIBUTIONS和HISTOGRAM是两种不同形式的直方图,通过这些直方图可以看到数据整体的状况。PROJECTOR栏目中默认使用PCA分析方法,将高维数据投影到3D空间,从而显示数据之间的关系。

对于这样的计算图,有下面的说明:

在使用TensorBoard的时候,我们可以巧妙地使用命名空间来使得结构变得更加易读。通过定义子命名空间整理结点后的效果。该计算图只显示了最顶层的各命名空间之间的数据流关系,其细节信息被隐藏起来了,这样便于把握主要信息。将上面的代码做如下修改,就会得到如下的计算图:

import tensorflow as tf

with tf.name_scope('parameter'):
    input1 = tf.constant([1.0, 2.0, 3.0], name = "input1")
    input2 = tf.Variable(tf.random_uniform([3]), name = "input2")

with tf.name_scope('calc'):
    output = tf.add_n([input1, input2], name = "add")

writer = tf.summary.FileWriter("./log2", tf.get_default_graph())
writer.close()

我们可以看到,TensorBoard会自动将命名空间组成一个格子,这样产生的计算图将会更加直观,尤其是计算结构非常复杂的时候。

 

二、计算图节点的信息

有的时候,我们需要查看部分重要命名空间下的节点信息,那这些细节信息如何查看呢?对于节点信息,双击图8中的任意一个命名空间,就会展开对应命名空间的细节图(再次双击就可以收起细节图)。例如,我们点开input2,就可以看见详细的信息:


参考链接:https://zhuanlan.zhihu.com/p/36946874

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值