[关闭]
@songying 2018-12-10T13:54:03.000000Z 字数 1359 阅读 1144

TensorBoard

TensorFlow


什么是TensorBoard?

可视化工具,可以将训练过程中的各种绘制数据展示出来,包括标量(scalars),图片(images),音频(Audio),计算图(graph),数据分布,直方图(histograms)和嵌入式向量。

控制面板

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

tf.summary 模块

该模块的功能是获取和输出模型相关的序列化数据。

classes 说明
functions 说明
audio(name,tensor, sample_rate,max_outputs=3, collections=None, family=None) summary ops,针对音频数据
image(name,tensor,max_outputs=3,collections=None,family=None) summary ops ,针对图片
scalar(name,tensor,collections=None,family=None) summary ops . 针对标量值
histogram(name,values,collections=None,family=None) summary ops, 针对统计信息
merge(inputs, collections=None,name=None) summary ops,
merge_all(key=tf.GraphKeys.SUMMARIES,scope=None,) summary ops

TensorBoard 使用流程

流程: 先使用summary ops来获取序列化数据;然后通过FileWriter实例将这些数据写入事件文件;最后,启动TensorBoard程序,加载事件文件中的序列化数据,我们就可以在各个面板中看到可视化数据了

  • summary ops: 负责获取我们想要的,数据流图上的张量数据。summary ops中存储的三序列化数据(Protocol Buffers), 而在数据流图中存储的是具体的张量值。
  • FileWriter: 负责向事件文件中写入序列化数据。

name_scope

按名称域对节点进行分组的方法对于制作清晰的图形至关重要。如果您正在构建模型,则名称域可以让你更好的控制生成的可视化图形。你命名的名字域越好,你的可视化图形就越好。

TensorFlow 图有两种连接方式:数据相关性和控制相关性。数据相关性显示两个操作符之间的张量流,并显示为实线箭头,而控制相关性使用虚线。

启动TensorBoard

  1. tensorboard logdir=path/to/log-directory
  2. python -m tensorboard.main
  • logdir: 是 FileWriter 序列化数据的目录。如果 logdir 目录包含子目录,并且子目录具有来自单独线程的序列化数据,那么 Tensorboard 将统一展示这些可视化数据

一旦 TensorBoard 运行,你可以通过你的 Web 浏览器 localhost:6006,查看 Tensorboard

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注