《深入了解TensorFlow》笔记——Chapter 6.1 TensorBoard可视化工具概述

在算法设计过程中,开发者往往需要剖析神经网络的结构和graph流程。在训练过程中,用户也需要关注参数的变化趋势和模型的实时效果。TensorBoard是TF项目组开发的深度学习visualization tool,通过直观图形展示,有效地解决了上述问题。

简介

TB的实现形态是Web应用程序,这为分布式、跨系统的图形界面服务带来了便利。

TB web界面的顶部菜单栏包含了7个功能面板的连接,这些面板分别展示不同的可视化对象。

  • SCALARS,展示标量值随时间变化的关系图
  • IMAGES,展示图像数据
  • AUDIO,展示音频数据
  • GRAPHS,展示数据流图
  • DISTRIBUTIONS,展示向量值的数据分布信息
  • HISTOGRAMS,展示向量值的统计信息
  • EMBEDDINGS,展示降维后的高维数据

在使用TF开发模型过程中,用户设计的数据流图往往非常复杂,其中可能包含少则几百条,多则上万条数据流或控制流,如果没有合适的工具可视化数据流图,那么调试的效率将会大大降低,。TB的Graph面板实现了Graph的visualization function,能够分级显示子图和子节点,可以大大提升静态调试模型结构的效率。

使用Scalars面板可以直观的观察模型训练过程中准确率,损失值以及其他标量随时间的变化。

TB使用流程

事实上TB在不同面板下展示的对象数据均来自TF程序生成的序列化数据,有效地输出这些数据是使用TB的关键所在。
TB的典型流程如下所示:
《深入了解TensorFlow》笔记——Chapter 6.1 TensorBoard可视化工具概述_第1张图片TB的主要模块便是tf.summary module,它的主要功能是获取和输出模型相关的序列数据。

《深入了解TensorFlow》笔记——Chapter 6.1 TensorBoard可视化工具概述_第2张图片

  1. Summary Ops
    主要负责获取Graph上的张量,包括用户定义的度量指标,模型参数、音频和图像数据等。汇总操作与计算操作输出的张量不同,前者存储的是序列化数据(Protocal buffers),后者包含的是具体的张量值。tf.Summary.merge_all()方法将所有汇总操作进行汇聚,生成一个聚集操作merged。他是所有汇总操作的后置操作,只要执行了merged操作,就等效于执行了所有的汇总操作。

  2. FileWriter
    负责向event file写入序列化数据,包括汇总数据、事件数据和graph等。

  3. Summary
    Summary类就是汇总数据

  4. Event
    Event类就是事件数据。

汇总数据:符合tensorflow/core/framework/summary.proto文件定义的数据结构,表示一组将被可视化的具名数值,包括图像数据、音频数据等;
事件数据:符合tensorflow/core/util/event.proto文件定义的数据结构,表示在会话中执行操作时产生的时间信息,包括时间戳、全局步数等;
graph:符合tensorflow/core/framework/graph.proto文件定义的数据结构,表示当前会话加载的默认数据流图,包括graph中的所有节点和有向边,以及graph的版本号等。

你可能感兴趣的:(TensorFlow,可视化,tensorflow,深度学习,神经网络,机器学习)