所見即所得
目前,大部分深度學習框架都提供了 Python 的用戶界面,其訓練過程的狀態通常以日記的形式被記錄下來,這種方式可以觀察短期內的訓練狀態,但是難以從全局把握訓練過程中的變化趨勢,導致提取信息時受到較多限制。反觀 Visual DL,它可以使得深度學習任務變得生動形象,實現可視分析,改變了傳統的日記式記錄形態,便於用戶將訓練過程可視化,幫助更好地把控全局。
首先,它的「Scalar」功能支持 Scalar 打點數據展示,可將訓練信息以折線圖的形式展現出來,方便觀察整體趨勢,還能在同一個可視化視圖中呈現多條折線,方便用戶對比分析。
其次,Visual DL 的「Image」功能支持圖片展示,用戶可輕鬆查看數據樣本的質量,也可以方便地查看訓練的中間結果,例如卷積層的輸出或者 GAN 生成的圖片。
同時,Visual DL 還具有 Histogram 參數分布展示功能,方便用戶查看參數矩陣中數值的分布曲線,並隨時觀察參數數值分布的變化趨勢。
最後,Visual DL 中的「Graph」還能幫助用戶查看深度神經網路的模型結構。據悉,Graph 支持直接對 ONNX 的模型進行預覽,由於 MXNet、Caffe2、Pytorch 和 CNTK 都支持轉成 ONNX 的模型,這意味著 Graph 可間接支持不同框架的模型可視化功能,讓用戶便於排查網路配置的錯誤,幫助理解網路結構。
Visual DL 除了功能全面以外,還具有易集成、易使用等優勢。
它可提供獨立的 Python SDK,若用戶的訓練任務基於 Python,可直接安裝 Visual DL 的 WHL 軟體包,隨後輸入到項目中進行使用,使用方式簡單便捷。
為了滿足用戶的不同操作需求,用戶在其 Python 代碼中可加入 Visual DL 日誌記錄邏輯,啟動 Visual DL 後即可通過瀏覽器查看日誌的可視化結果。
此外,Visual DL 在底層使用 C++ 編寫,提供原生的 C++ SDK,用戶可將其深入集成到自己 C++ 的項目,以實現更高效的性能。
值得一提的是,Visual DL 現已完全開放,同時支持大部分的深度學習框架。其 SDK 層面可輕鬆集成到 Python 或者 C++ 項目中,此外, Graph 通過 ONNX 還可直接支持 PaddlePaddle、TensorFlow、MxNet、PyTorch 和 Caffe2 等流行的深度學習框架。對於開發者來說,Visual DL 可以將深度學習任務的訓練過程可視化,減少用戶的觀察比對時間,讓整個訓練過程更高效。
使用
VisualDL 同時提供了 Python SDK 和 C++ SDK ,我們可以快速地將數據可視化。
以如何用Python創建一個簡單的可視化標量為例:
import random from visualdl import LogWriter logdir = "./tmp" logger = LogWriter(dir, sync_cycle=10) # mark the components with 'train' label. with logger.mode("train"): # create a scalar component called 'scalars/scalar0' scalar0 = logger.scalar("scalars/scalar0") # add some records during DL model running, lets start from another block. with logger.mode("train"): # add scalars for step in range(100): scalar0.add_record(step, random.random())
在訓練過程生成了一些日誌後,我們可以登錄控制面板並查看實時的數據可視化效果,登陸方式只需要在命令窗口輸入以下命令:
visuaIDL --logdir <some log dir>
相關信息
VisualDL 是由百度團隊PaddlePaddle & ECharts 團隊開發的深度學習可視化工具。
PaddlePaddle是一個易學易用的分散式深度學習平台,提供豐富的演算法服務,致力於機器視覺和自然語言理解的研究。