TensorBoard中HISTOGRAMS和DISTRIBUTIONS图形的含义

前言

以前我都是用TensorBoard记录训练过程当中的Loss、mAP等标量,很容易就知道TensorBoard里的SCALARS(标量)图是怎么看的(其中横纵轴的含义、Smoothing等)。html

最近在尝试模型压缩,其中的一个步骤是对模型进行稀疏训练。git

稀疏训练时须要记录模型中BN层的Gamma值的分布状况(取哪些值,这些值出现的次数/频度),这时用TensorBoard里的SCALARS之类的图就不合适了,而是应该用TensorBoard里的HISTOGRAMS(直方图)和DISTRIBUTIONS(暂未找到合适的译文)。github

因此我昨天学习、了解了一点HISTOGRAMS和DISTRIBUTIONS,今天作了一部分简单记录,具体见下文。vim

正文

HISTOGRAMS和DISTRIBUTIONS这两种图的数据源是相同的,只是从不一样的视角、以不一样的方式来表示数据的分布状况。数组

下面先介绍HISTOGRAMS,再介绍DISTRIBUTIONS。学习

HISTOGRAMS

HISTOGRAMS

上图是TensorBoard生成的一个直方图(OFFEST模式),下面介绍图中几个元素的含义。.net

  • 数据源
    • 数据源是一维数组
      • 也在别处看到有人说能够是多维数组,但会被压缩成一维数组,有兴趣的小伙伴能够具体研究一下
      • 若是你只有1个数组,也是能够的
  • 当鼠标放在图上时出现的一条黑线和数字
    • 鼠标放在图上出现的一条黑线,就对应数据源里的一个一维数组
    • 上图中显示的黑线对应个人第41个数组的全部元素(index为40,由于index从0开始计数的)的取值的分布状况
  • 图下方的横轴
    • 横轴的值和数组内元素的取值对应
  • 图右方的纵轴
    • 纵轴的值对应着是哪个数组,或者说对应了数组的id、index(上边提到的40)
  • 颜色
    • 能够看到上图中的颜色是渐变的,靠上(id小)的颜色深,靠下(id大)的颜色浅
  • 上面的用词比较“学术化”,若是看不懂,就看下边的这个解释吧
    • 个人数据有99个数组,index从0到98,但右侧的纵轴值只标到了90
    • 数组元素的分布范围是横轴上的数字,能够看出个人每一个数组中的元素的取值大约集中在0到0.2,超过1.5的元素不多
    • 个人第40个数组(说法不严谨,准确地说是id为40)中大约有505个元素的值为0.536左右
  • 若是仍是不懂的话,建议先去看看直方图是什么

DISTRIBUTIONS

DISTRIBUTIONS

把HISTOGRAMS搞懂后,这个图就很好懂的,由于这个图的数据源和HISTOGRAMS同样。3d

  • 横轴
    • 横轴是对应哪一个数组
  • 纵轴
    • 数组中元素的取值
  • 颜色
    • 颜色深表明对应值出现的频数高
  • 如上图,个人99个数组从0到98,数组中元素的取值慢慢地趋近于0

参考连接

剪枝Github

https://github.com/tanluren/yolov3-channel-and-layer-pruninghtm

HISTOGRAMS和DISTRIBUTIONS

http://www.javashuo.com/article/p-ejfadqut-dd.htmlblog

https://vimsky.com/article/3645.html

https://www.jianshu.com/p/8fdc43e48c86

https://blog.csdn.net/wgj99991111/article/details/84708255


做者:@臭咸鱼

转载请注明出处:https://www.cnblogs.com/chouxianyu/

欢迎讨论和交流!

相关文章
相关标签/搜索