TensorFlow提供了一个可视化工具TensorBoard,他的作用是可以把复杂的训练过程可视化,可以更好理解、调优、优化程序。TensorBoard可以将训练过程中的各种该数据展示出来,包括标量、图片音频,计算图,数据分布、直方图和嵌入式向量。他会自动读取最新的TensorFlow日志文件,呈现当前的程序运行的最新状态。
TensorFlow提供了一系列API来生成这些数据,具体如表3所示。
表3 模型操作相关函数
函 数 |
说 明 |
tf.summary.scalar(tags,values,collections=None, name=None) |
标量数据汇总,输出protobuf |
tf.summary.histogram(tags,values,collections=None, name=None) |
记录变量var的直方图,输出带直方图的汇总的protobuf |
tf.summary.image(tags,tensor,max_images=3 ,collections=None,name=None) |
图像数据汇总,输出protobuf |
tf.summary.merge(inputs,,collections=None, name=None) |
合并所有的汇总日志 |
tf.summary.FileWriter |
创建SummaryWriter |
class SummaryWriter: add_summary(),add sessionlog(),add_event(),or add_graph() |
将protobuf写入文件的类 |
实例:线性回归的TensorBoard可视化
为线性回归模型添加支持输出TensorBoard信息的功能,演示通过TensorBoard来观察训练过程。本例在线性回归模型上做少量改动,使其添加支持TensorFlow的功能。第一步加入到summary,第二步写入文件。
将模型的生成值加入到直方图数据中,将损失值加入到标量中,代码如下:
代码13 线性回归模型的TensorBoard可视化
运行代码后生成的路径下会多出如图5所示文件:
图5 summary文件
然后打开终端,来到summary日志的上一级目录下,输入代码:tensorboard --logdir=mnist_with_summaries 回车之后会出现如图6结果:
图6 启动TensorBoard
复制网址到浏览器(建议使用Chrome浏览器),即可看到如图7TensorBoard界面。
图7 TensorBoard界面
单击SCALARS,会看大之前创建的loss_fuction如图8:
图8 TensorBoard标量