TensorBoard中HISTOGRAMS和DISTRIBUTIONS图形的含义
臭咸鱼 人气:1
# 前言
之前我都是用TensorBoard记录训练过程中的Loss、mAP等标量,很容易就知道TensorBoard里的SCALARS(标量)图是怎么看的(其中横纵轴的含义、Smoothing等)。
最近在尝试模型压缩,其中的一个步骤是对模型进行稀疏训练。
稀疏训练时需要记录模型中BN层的Gamma值的**分布情况**(取哪些值,这些值出现的次数/频度),这时用TensorBoard里的SCALARS之类的图就不合适了,而是应该用TensorBoard里的**HISTOGRAMS**(直方图)和**DISTRIBUTIONS**(暂未找到合适的译文)。
所以我昨天学习、了解了一点HISTOGRAMS和DISTRIBUTIONS,今天做了一部分简单记录,具体见下文。
# 正文
HISTOGRAMS和DISTRIBUTIONS这两种图的数据源是相同的,只是从不同的视角、以不同的方式来表示数据的分布情况。
下面先介绍HISTOGRAMS,再介绍DISTRIBUTIONS。
## HISTOGRAMS
![HISTOGRAMS](https://images.cnblogs.com/cnblogs_com/chouxianyu/1511971/o_200402115112HISTOGRAMS.jpg)
上图是TensorBoard生成的一个直方图(OFFEST模式),下面介绍图中几个元素的含义。
- **数据源**
- 数据源是**多**个**一维数组**
- 也在别处看到说可以是多维数组,但会被压缩成一维的,有兴趣的小伙伴可以具体研究一下
- 如果你只有1个数组,也是可以的
- **当鼠标放在图上时出现的一条黑线和数字**
- 鼠标放在图上出现的一条黑线,就对应数据源里的**一个一维数组**
- 上图中显示的黑线是我的第40个数组
- **图下方的横轴**
- 横轴的值和数组内元素的取值对应
- **图右方的纵轴**
- 纵轴的值对应着是哪一个数组,或者说数组的id、index
- **颜色**
- 可以看到上图中的颜色是渐变的,靠上(id小)的颜色深,靠下(id大)的颜色浅
- 上面的用词比较“学术化”,如果看不懂,就看下边的这个解释吧
- 我的数据有99个数组,0到98,但右侧的纵轴值只标到了90
- 数组元素的分布范围是横轴上的数字,可以看出我的每个数组元素的取值大约集中在0到0.2,超过1.5的都很少
- 我的第40个数组(说法不严谨,准确地说是id为40)大约有505个元素的值为0.536左右
- 如果还是不懂的话,建议先去看看直方图是什么
## DISTRIBUTIONS
![DISTRIBUTIONS](https://images.cnblogs.com/cnblogs_com/chouxianyu/1511971/o_200402115157DISTRIBUTIONS.jpg)
把HISTOGRAMS搞懂后,这个图很好懂的,这个图的数据源和HISTOGRAMS一样。
- **横轴**
- 横轴是对应哪个数组
- **纵轴**
- 数组中元素的取值
- **颜色**
- 颜色深代表对应值出现的频数高
- 如上图,我的99个数组从0到98,数组中元素的取值慢慢地趋近于0
---
作者:[@臭咸鱼](https://github.com/chouxianyu)
转载请注明出处:
欢迎讨论和交流!
---
加载全部内容