Tensorboard其它监控指标可视化

继续 上节介绍的 MNIST手写数字识别的例子,本节将对 DISTRIBUTIONS(数据分布)和 HISTOGRAMS(直方图〉这两个选项卡(两个监控指标)进行介绍,实际上它们也没有什么过于复杂的地方。对于 DISTRIBUTIONS 选项卡, TensorFlow 并没有在 summar.py 中 提供 distribution()函数来汇总分布数据,该选项卡中的数据来源于 summar. histogram()函数汇总的结果:也就是说, DISTRIBUTIONS 选项卡和 HISTOGRAMS 选项卡中的数据相同,只是可视化的形式不同。下图展示了 DISTRIBUIONS 选项卡的可视化结果,从中可以看到之前在程序中记录的各个神经网络层输出的分布,包括在**函数前的结 果以及在**函数后的结果。以 layer_1 的 per_activations 为例,下图展示了其放大之后的结果。
Tensorboard其它监控指标可视化
Tensorboard其它监控指标可视化

也可以将 DISTRIBUTIONS 选项卡中可视化数据的形式转换为直方图的形式。在该选项卡的右侧是 HISTOGRAMS 选项卡,这里展示的就是转 换为直方图后的结果,如下图所示。还是以layer_1的 per_activations 为例,下图展示了其放大之后的结果。在下图中,将光标停放在直方图的顶点,就会展示在该点的数据值以及坐标值,非常方便。

Tensorboard其它监控指标可视化
Tensorboard其它监控指标可视化
在最右侧的 EMBEDDINGS (嵌入向量)选项卡中可以看到降维后的嵌入向量的可视化效果,这属于 TensorBoard 的 Embedding Projector 功能。尽管在上节的程序中在MNIST 数据的训练中没有汇总嵌入向量,但是想要可视化相关数据降维后的嵌入向量也是不难的,只要我们使用 save.Saver() 函数保存了整个模型, 就能让 TensorBoard 自动对模型中的二维 Variable 进行可视化。尽量不要在程序中把 checkpoint 文件以及模型保存过程中产生的其他 3 个文件保存得和日志文件相隔太远。如果保存后的模型文件相对于程序中指定的模型保存路径发生了偏移,那么 TensorBoard 会在 EMBEDDINGS 选项卡中报无法找到 Checkpoint 文件的错误。下图展示了降维后的嵌入向量的可视化效果。

Tensorboard其它监控指标可视化
降维后的嵌入向量的可视化效果是非常魔幻的,在下图所示界面的中心是一个 3D 的坐标,在一开始会有动态的效果;等坐标点的位置稳定后,就可以拖动鼠标对坐标轴进行移动。将光标放到某一个点上会显示具体的值,如下图中的104。在下图所示坐标界面的上方有一个A按钮,它用于将坐标点的数据值展示出来。单击某一坐标点的数值,会在可视化界面的右侧显示一些有用的信息,比如 Nearest points in the original space 会展示出与所选坐标点距离最近的点的数值。假设我们选择了值为 685 的坐标点,那么单击之后的 结果如下图所示。neighors 表示距离最近的点的数量,拖动滑块可以改变 Nearest points in the original space 中展示的内容的多少。在 EMBEDDINGS 选项卡的左侧控制区中, DATA 用于选择要展示的张量数据。对于这个程序,它会提示“6 tensors found” 。

Tensorboard其它监控指标可视化
在 DATA 项的下面可以选择降维算法(如T-SNE 或者 PCA 算法, 默认是PCA)对数据的列(特征)进行降维,并选择在 2D 还是 3D 的坐标中进行可 视化展示。下图展示的是选择了下SNE 算法之后的整体效果。
Tensorboard其它监控指标可视化

如果模型是 Word2Vec,那么 TensorBoard 中的 EMBEDDINGS 可视化 功能将会非常实用。在之前的章节实践 Word2Vec 时,我们也确实见证了可视化嵌入向量功能的方便。

关注小鲸融创,一起深度学习金融科技!

Tensorboard其它监控指标可视化