ITBear旗下自媒體矩陣:

還在“黑盒煉丹”? 百度飛槳VisualDL教你一行代碼透視煉丹過程

   時間:2020-08-14 20:24:39 來源:互聯(lián)網(wǎng)編輯:星輝 發(fā)表評論無障礙通道

深度學習模型訓練過程盯log頭暈眼花?復雜模型結構全靠腦補?網(wǎng)絡各層效果無法評估?模型評估指標難以綜合權衡?近日,VisualDL 2.0 ——飛槳可視化分析工具全面改版升級,幫眾位開發(fā)者們從”煉丹萌新”變身“太上老君”。

VisualDL是百度飛槳為廣大深度學習開發(fā)者訂制的功能完備的可視化分析工具。它可以幫助深度學習開發(fā)者了解訓練過程中模型參數(shù)的變化趨勢、 網(wǎng)絡層對數(shù)據(jù)特征的提取情況、網(wǎng)絡結構應該如何調(diào)整、精度與召回是否達到了理想的平衡等,從而實現(xiàn)有方向性的錯誤排查,實現(xiàn)高效的模型調(diào)優(yōu)。

早在2017年VisualDL 1.0就已推出,隨著飛槳開源深度學習平臺3年深入產(chǎn)業(yè)實踐的不斷打磨,VisualDL本次也完成了2.0版本的全新蛻變!相較VisualDL 1.0,新版本的API設計更加簡潔易用、與框架銜接更為順暢、功能更豐富,界面設計也全面進行了升級,致力為老用戶帶來全新體驗,為新用戶帶來使用上的驚喜。

VisualDL 2.0能做什么?

當前,VisualDL 2.0共有五大可視化功能。

1、標量(Scalar)

標量可以通過圖表的形式展示Loss、Accuracy、Learning Rate等參數(shù)指標在訓練過程中的變化趨勢,幫助開發(fā)者了解其是否朝著理想的方向優(yōu)化,便于發(fā)現(xiàn)異常情況,及時排查并修復問題;另外,通過對比多組實驗的訓練參數(shù),開發(fā)者們能深入探究參數(shù)對模型效果的影響,加速模型的調(diào)優(yōu)。

實現(xiàn)代碼:

2、數(shù)據(jù)樣本分析(Sample)

數(shù)據(jù)樣本分析可以在多種深度學習任務中發(fā)揮重要作用。例如在計算機視覺任務中,該功能不僅可以查看每個訓練批次中的指定的樣本圖片,也可以展示圖像數(shù)據(jù)的在訓練過程中間階段的提取特征情況,便于開發(fā)者們觀察圖片數(shù)據(jù)在訓練過程中的狀態(tài),進而深入了解訓練過程及效果。

實現(xiàn)代碼:

在語音識別或合成任務中,數(shù)據(jù)樣本分析功能可以幫助開發(fā)者實時獲取訓練過程中的音頻數(shù)據(jù),評估語音識別或合成的效果,挑選最優(yōu)的訓練模型。

實現(xiàn)代碼:

3、模型結構(Graph)

模型結構功能支持一鍵可視化模型網(wǎng)絡結構。開發(fā)者們可查看模型屬性、節(jié)點信息、節(jié)點輸入輸出等,并支持節(jié)點搜索功能,協(xié)助開發(fā)者們快速分析模型結構并了解數(shù)據(jù)流向。

當前支持如下兩種操作方式:

模型文件拖拽上傳

在命令行加入?yún)?shù)--model并指定模型文件路徑(非文件夾路徑),運行命令后即可啟動:

4、直方圖(Histogram)

直方圖可以展示Tensor(weight、bias、gradient等)數(shù)據(jù)在訓練過程中的變化趨勢,深入了解模型各層效果,幫助開發(fā)者精準調(diào)整模型結構。

實現(xiàn)代碼:

5、PR 曲線(PR Curve)

PR曲線可以展示每一分類在不同閾值下的精度(Precision)-召回率(Recall)曲線,幫助開發(fā)者權衡模型精度和召回率之間的平衡,設定最佳閾值。精度是指正樣本的數(shù)量除以所有被選中樣本的數(shù)量,而召回率是指所有正樣本中被推理正確的比例,由此可見精度越高,召回率越高,我們的模型就越好。但是很多情況下,魚和熊掌不可兼得,無法同時保證精度和召回率都是最高,此時需要通過PR曲線,權衡精度與召回率,確定最佳閾值。

實現(xiàn)代碼:

為了便于大家更好的了解VisualDL,我們結合一個簡單的實際模型例子來更直觀的看下這幾個功能,那就是深度學習中的“Hello World”,手寫數(shù)字識別。

VisualDL 2.0怎么用?

假設在一個風和日麗的早晨,作為深度學習愛好者的你,想要建立一個簡單的LeNet模型進行手寫數(shù)字識別,在辛苦完成模型搭建后,進入模型訓練時,卻看到了如下一幕:

你心里一沉,這精度怎么抖得那么厲害啊。訓練中哪里出現(xiàn)問題了呢?到底誰是“兇手”?可是連問題出在哪都不知道,模型優(yōu)化和修復更是無從下手。這時你想起幾日前偶然發(fā)現(xiàn)的深度學習可視化分析工具——VisualDL,心中頓時升起希望,因為在訓練之前,已經(jīng)把下面的代碼添加到訓練腳本中了。

接下來就執(zhí)行下面的命令來開始奇幻的破案(調(diào)優(yōu))之旅吧!

執(zhí)行命令后,即可得到這樣一個網(wǎng)址http://localhost:8080/,打開瀏覽器輸入這個網(wǎng)址即可查看究竟發(fā)生了什么。首先來看看案發(fā)現(xiàn)場。。

點擊“標量數(shù)據(jù)”頁簽查看模型的Loss和Accuracy整體變化趨勢,也就是把剛才的日志信息通過圖形直觀的展示出來。這部分對應的代碼如下所示:

一眼望去,這哪是Loss和Accuracy的變化曲線啊,這明顯是心率不齊啊,讓人有打120叫救護車的沖動了!

顯而易見,Accuracy一直在10%左右徘徊,Loss一直無法下降,由此我們開始逐個查看問題出在哪個環(huán)節(jié)。首先看看模型結構的實際樣子,是否是結構設計出了問題。

點擊“網(wǎng)絡結構”頁簽,將保存在“./model”目錄下的模型文件拖進頁面即可看到模型的結構。

通過觀察模型結構、節(jié)點屬性、模型屬性、數(shù)據(jù)流向,咱們可以直觀的發(fā)現(xiàn)整體結構是符合預期的,也就是說模型網(wǎng)絡本身是清白的,那么是否是模型“吃進”的數(shù)據(jù)有問題呢?

點擊“樣本數(shù)據(jù)”查看訓練中的樣本數(shù)據(jù)。這部分對應的代碼如下所示:

通過查看每批次數(shù)據(jù)的第一張圖片,發(fā)現(xiàn)輸入數(shù)據(jù)也是沒有問題的。那么咱們再來“回放錄像”,看看每一時間步的參數(shù)變化情況吧。

點擊“直方圖”頁簽,查看訓練過程中每一時間步權重和偏差的變化情況,就如同回放整個訓練過程的監(jiān)控錄像一樣,讓訓練過程中參數(shù)變化不正常的問題無所遁形!這部分對應的代碼如下所示:

通過查看后發(fā)現(xiàn),每一層的權重和偏差的變化正常。由此證明不是特定層的初始參數(shù)配置出現(xiàn)問題,排除了模型結構、數(shù)據(jù)樣本、每層網(wǎng)絡參數(shù)配置后,還剩下超參數(shù)的配置,因此決定嘗試不同的學習率(0.001,0.03,0.05,0.08,0.1),并通過VisualDL的多實驗對比功能,來觀察學習率對模型訓練效果的影響情況。

啟動多實驗對比功能非常的簡單,只需要在訓練腳本中參考如下代碼實現(xiàn)同一個目錄下記錄多份不同學習率的訓練日志文件,并啟動相應訓練即可。接著啟動VisualDL,就會得到多組實驗記錄對比圖了。

你終于發(fā)現(xiàn)了問題所在了,原來是學習率設置的過大了,導致Loss無法下降收斂,根據(jù)“標量數(shù)據(jù)”展示的效果,當學習率為0.001時(深藍色線條),Loss呈現(xiàn)優(yōu)美的下降趨勢且后續(xù)漸漸收斂,Accuracy呈現(xiàn)逐漸上升并趨于平穩(wěn),因此你將學習率設置為0.001,使得模型呈現(xiàn)最佳效果。

但是你還不滿足于現(xiàn)狀,想要選擇一個最佳閾值,使得模型的精準度和召回率都達到最優(yōu),于是又開始使用“PR曲線”功能。

點擊“PR曲線”頁簽,權衡精確度與召回間的關系,確定最佳閾值。這部分對應的代碼如下所示:

以上圖為例,該圖是手寫數(shù)字識別任務中類別7對應的PR曲線,從圖中可以看出,當閾值為0.10、0.15或0.20時,準確率和召回率同時達到最高值,因此選擇上述中的任意閾值,模型都可達到最佳效果。

最終,在VisualDL的幫助下,你確定了模型閾值為0.15,學習率為0.001,至此,一個效果理想的手寫數(shù)字識別模型搭建完成。

寫在最后

看到這里,相信大家已經(jīng)對VisualDL 2.0有了一個比較全面的了解,也發(fā)現(xiàn)它是真的又有用,又好用吧?然而這還不夠,飛槳團隊還為它增加了諸多軟實力:

1、高兼容性:全面支持飛槳、ONNX、Caffe等市面主流模型結構可視化,廣泛支持各類用戶實現(xiàn)可視化分析。

2、生態(tài)支持全面:與飛槳的多個套件、工具組件以及AI學習和實訓社區(qū)AI Studio全面打通,為開發(fā)者們在飛槳生態(tài)系統(tǒng)中提供最佳使用體驗。

在未來,VisualDL將會持續(xù)加入新的功能組件,致力于為開發(fā)者們提供簡單易用、功能豐富、性能強大的可視化分析工具,助力模型的優(yōu)化過程。

舉報 0 收藏 0 打賞 0評論 0
 
 
更多>同類資訊
全站最新
熱門內(nèi)容
網(wǎng)站首頁  |  關于我們  |  聯(lián)系方式  |  版權聲明  |  網(wǎng)站留言  |  RSS訂閱  |  違規(guī)舉報  |  開放轉(zhuǎn)載  |  滾動資訊  |  English Version