上篇,Amusi带着大家学习了如何浅入浅出TensorFlow 4 — 训练CIFAR数据,今天继续给大家介绍linolzhang大佬的TensorFlow系列课程,带大家学习使用可视化工具TensorBoard。
正文
一. TensorBoard 介绍
TensorFlow 可视化可以借助 Python 的 matplotlib 进行,也可以使用 TensorFlow 自带的 TensorBoard,推荐大家使用 TensorBoard 进行可视化,这样可以不依赖于TensorFLow 的 Python 接口。
可视化内容包括:
Event:训练过程中的统计数据,主要包括 Loss、Accuracy等
Image:记录的图像数据
Graphs:网络结构图
Audio:记录的音频数据
Histogram:直方图描述的统计结果
二. 生成过程
理解 TensorBoard 使用最关键的一点就是 Summary,Summary对应流程也就是我们的使用流程:
a)调用 TensorFlow API中的summary接口
上面 summay 得到的输出为包含对应数据的 ProtoBuf,通常的做法是先将这些数据合并,然后再写入。
b)将Summary信息汇总
将上面函数输出的 protobuf 数据进行合并,提供两种接口(通常我们用第二个就可以了):
c)指定写入路径
关键类:tf.train.SummaryWriter,在该目录下,生成对应event文件
d)Training调用及单步写出
三. 可视化展示
TensorFLow 主要对网络和参数进行可视化,通过读取运行过程中生成的 Log文件 进行可视化,输入参数为 日志文件路径。
TensorBoard 读取日志文件,并生成本地服务(默认6006端口),通过访问本地 回环地址 127.0.0.1:6006 查看可视化结果,如下图所示:
四. 代码示例
下面通过实例代码进行 TensorBoard 的使用展示,里面 with tf.name_scope() 需要理解一下,主要是做层级划分(与c++的namespace类似),比如:
形成结点的层次关系描述(可以参考 Tensorflow中文手册v1.2):
• hidden/alpha
• hidden/weights
• hidden/biases
完整的 MNIST训练示例:
五. 劳动成果
好了按照上面的命令,输入:
根据提示的IP地址进行浏览(注:用Chrome浏览器,IE或者Safri因兼容问题可能会出现空白问题):
--------我是可爱的分割线--------
领取专属 10元无门槛券
私享最新 技术干货