以DCGAN爲例,對Tensorboard的可視化的理解

tensorboard的可視化對我們應用tensorflow框架調參,或者寫論文都有一定幫助。

如有理解不到位的地方,敬請指正。

最近在跑DCGAN的代碼,正好藉此學習。

參考博客:https://blog.csdn.net/wgj99991111/article/details/84708255

                   https://blog.csdn.net/jk981811667/article/details/78864215

                  https://www.jianshu.com/p/db9dcb275fc6

 

1、Tensorboard簡介

TensorBoard目前支持7種可視化,Scalars,Images,Audio,Graphs,Distributions,Histograms和Embeddings。其中可視化的主要功能如下。

(1)Scalars:展示訓練過程中的常亮,如準確率、損失值、權重/偏置的變化情況。

(2)Images:展示訓練過程中記錄的圖像。

(3)Audio:展示訓練過程中記錄的音頻。

(4)Graphs:展示模型的數據流圖,以及訓練在各個設備上消耗的內存和時間。

(5)Distributions:展示訓練過程中記錄的數據的分部圖。

(6)Histograms:展示訓練過程中記錄的數據的直方圖。

(7)Embeddings:展示詞向量後的投影分部。

我們關鍵使用Scalars、Image、Graphs、Distribution、Histograms等

通過 在logs目錄下運行 tensorboard --logdirs=logs/  命令可讀取訓練時的logs文件,返回一個網址,在本地打開。

如果提示沒有tensorboard命令,而tensorboard已經安裝成功。可以通過python2 ../tensorboard/tensorboard.py --logdirs=logs/  具體看python2與python3中tensorboard文件夾內的主函數的位置

如下圖: 7個功能在最上方標題欄。

 

2、Scalars

Scalars 標量。顯示固定常數值。

data downloadlinks(數據下載鏈接),smoothing(圖像的曲線平滑程度)以及Horizontal Axis(水平軸)的表示,其中水平軸的表示分爲3種(STEP代表迭代次數,RELATIVE代表按照訓練集和測試集的相對值,WALL代表按照時間)

這個損失d_loss降的比較小,g_loss穩定在3左右,訓練不是很好,GAN真的很難收斂 啊 !

 

3、Image

展示生成器生成的一些照片示例。

 10 表示只顯示10張

4、Graphs

GRAPHS面板是對理解神經網絡結構最優幫助的一個面板,他直觀的展示了數據流圖。下圖界面中結點之間的連線即爲數據流,連線越粗,說明兩個結點之間流動的張量(tensor)越多。

可參考https://www.jianshu.com/p/db9dcb275fc6,理解的很透徹。

 

5、Distribution

distributions面板和histograms面板類似,只不過是用平面來表示,且他們的數據源是相同的。他們都是用來顯示張量的。直方圖使用來統計頻率信息的,distributions是在平面上表示一個張量每個值出現次數(顏色深淺)。這裏可能看histograms比較直觀。

上圖顯示的是輸入生成器的隨機噪聲Z,其是100維的張量。橫軸爲訓練的次數,縱座標爲取值範圍,用不同的顏色表示取某個區域值的頻次,顏色越深表示出現的頻次越多。從上圖可以看出,該噪聲值在1.78e*-16附近顏色最深,也就是說在這個附近取值頻次最高。

 

上圖分別是判別器對真實數據的loss值d 和判別器對生成數據的loss值d_,返回的應該是一個[batch_size, 1]維的張量,所以用distributions面板和histograms均可以表示,先來看distributions。左圖橫軸迭代次數,縱軸表示取值範圍,顏色表示一次迭代取樣時的張量中的頻數,可以看出來,訓練不是很穩定,情況好的時候大部分靠近1,也有大部分接近於0的情況。右圖意思一樣。

 

6、 histograms

 histograms是distributions三維展示,同樣對於張量Tensor來說,統計一個張量中每個數出現的次數,在三維中也就是高度。如下圖。

直方圖有兩種展現形式,overlay和offset。

OFFSET下:

該圖的橫座標表示d_loss的範圍,右側的總座標表示訓練測次數,對應的圖形中曲線的顏色由後至前逐步變淺,表示訓練的次數逐步增加。圖形中包含很多個曲線的切片,每個切片表示一次數據採集過程中的情況。從圖中可以看出判別器對真實數據的loss張量內每個loss出現的頻次。

OVERLAY:

上圖黑線表示,在迭代52606次後,在[batch_size,1]的張量中,loss值爲0.0502時出現了6.26次。

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章