花间提壶华小厨
1. Tensorboard简介
对大部分人而言,深度神经网络就像一个黑盒子,其内部的组织、结构、以及其训练过程很难理清楚,这给深度神经网络原理的理解和工程化带来了很大的挑战。为了解决这个问题,tensorboard应运而生。Tensorboard是tensorflow内置的一个可视化工具,它通过将tensorflow程序输出的日志文件的信息可视化使得tensorflow程序的理解、调试和优化更加简单高效。Tensorboard的可视化依赖于tensorflow程序运行输出的日志文件,因而tensorboard和tensorflow程序在不同的进程中运行。
那如何启动tensorboard呢?下面代码定义了一个简单的用于实现向量加法的计算图。
1. import tensorflow as tf
2. # 定义一个计算图,实现两个向量的减法操作
3. # 定义两个输入,a为常量,b为变量
4. a=tf.constant([10.0, 20.0, 40.0], name='a')
5. b=tf.Variable(tf.random_uniform([3]), name='b')
6. output=tf.add_n([a,b], name='add')
7. # 生成一个具有写权限的日志文件操作对象,将当前命名空间的计算图写进日志中
8. writer=tf.summary.FileWriter('/path/to/logs', tf.get_default_graph())
9. writer.close()
在上面程序的8、9行中,创建一个writer,将tensorboard summary写入文件夹/path/to/logs,然后运行上面的程序,在程序定义的日志文件夹/path/to/logs目录下,生成了一个新的日志文件events.out.tfevents.1524711020.bdi-172,如下图1所示。当然,这里的日志文件夹也可以由读者自行指定,但是要确保文件夹存在。如果使用的tensorboard版本比较低,那么直接运行上面的代码可能会报错,此时,可以尝试将第8行代码改为file_writer=tf.train.SummaryWriter(‘/path/to/logs’, sess.graph)
图1 日志目录下生成的events文件路径
接着运行如图2所示命令tensorboard –logdir /path/to/logs来启动服务。
图2 linux下启动tensorboard服务的命令
注意,当系统报错,找不到tensorboard命令时,则需要使用绝对路径调用tensorboard,例如下面的命令形式:
python tensorflow/tensorboard/tensorboard.py --logdir=path/to/log-directory
图3 tensorflow向量相加程序的计算图的可视化结果
启动tensorboard服务后,在本地浏览器中输入http://188.88.88.88:6006,会看到如上图3所示的界面。注意,由于本节程序是在Linux服务器上运行的,所以需要输入该服务器完整的IP地址(http://188.88.88.88:6006指本