TensorBoard中HISTOGRAMS和DISTRIBUTIONS圖形的含義


前言

之前我都是用TensorBoard記錄訓練過程中的Loss、mAP等標量,很容易就知道TensorBoard里的SCALARS(標量)圖是怎么看的(其中橫縱軸的含義、Smoothing等)。

最近在嘗試模型壓縮,其中的一個步驟是對模型進行稀疏訓練。

稀疏訓練時需要記錄模型中BN層的Gamma值的分布情況(取哪些值,這些值出現的次數/頻度),這時用TensorBoard里的SCALARS之類的圖就不合適了,而是應該用TensorBoard里的HISTOGRAMS(直方圖)和DISTRIBUTIONS(暫未找到合適的譯文)。

所以我昨天學習、了解了一點HISTOGRAMS和DISTRIBUTIONS,今天做了一部分簡單記錄,具體見下文。

正文

HISTOGRAMS和DISTRIBUTIONS這兩種圖的數據源是相同的,只是從不同的視角、以不同的方式來表示數據的分布情況。

下面先介紹HISTOGRAMS,再介紹DISTRIBUTIONS。

HISTOGRAMS

HISTOGRAMS

上圖是TensorBoard生成的一個直方圖(OFFEST模式),下面介紹圖中幾個元素的含義。

  • 數據源
    • 數據源是一維數組
      • 也在別處看到有人說可以是多維數組,但會被壓縮成一維數組,有興趣的小伙伴可以具體研究一下
      • 如果你只有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一樣。

  • 橫軸
    • 橫軸是對應哪個數組
  • 縱軸
    • 數組中元素的取值
  • 顏色
    • 顏色深代表對應值出現的頻數高
  • 如上圖,我的99個數組從0到98,數組中元素的取值慢慢地趨近於0

參考鏈接

剪枝Github

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

HISTOGRAMS和DISTRIBUTIONS

https://www.cnblogs.com/rainydayfmb/p/7944224.html

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/

歡迎討論和交流!



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM