據百度技術經理祖明的知乎文章介紹,2018 年 1 月 16 日,百度發佈開源產品 ECharts(echarts.baidu.com)的最新大版本 4.0,新版本在產品的性能、功能、易用性等各個方面進行了全面提升。此外,百度還一起發佈了 ECharts GL 1.0 正式版,ZRender 4.0 全新版本,WebGL 框架 ClayGL、深度學習框架 VisualDL 等數據可視化產品。祖明還提到,隨着這些產品的發佈,百度正式公佈全新升級的數據可視化品牌----「百度數據可視化實驗室」。本文對深度學習可視化工具 VisualDL 做了介紹。
VisualDL 項目地址:https://github.com/PaddlePaddle/VisualDL
VisualDL 是一個深度學習可視化工具,可以幫助開發者設計深度學習方面的項目,它目前囊括了標量特徵、參數分佈、模型結構和圖像可視化等特徵。該項目的 GitHub 介紹表示這個可視化工具正在快速發展,新的功能也將不斷添加到裏面。
據祖明介紹,從去年開始,團隊和百度 PaddlePaddle 深度合作,打造了一款深度學習可視化平臺 VisualDL,也在這次一同發佈,希望通過可視化的方法將模型訓練過程中的各個參數以及計算的數據流圖實時地展現出來,以幫助模型訓練者更好的理解、調試、優化模型。用戶只需要通過 Visual DL 提供的接口將模型相關的各種參數數據寫入日誌中,然後 VisualDL 會讀取日誌中的模型相關數據將其展示出來,這些數據包括模型訓練過程中的各種定量的度量、用戶傳入的或者中間訓練過程生成的各種圖片、以及神經網絡訓練過程中的計算數據流圖。
目前 VisualDL 提供四個組件,包括計算圖、標量、圖像和直方圖,這和 TensorFlow 中的 TensorBoard 有一些相似。它們都希望追蹤神經網絡在整個訓練過程中的信息,例如迭代的過程中每一層參數是如何變化與分佈、損失函數在迭代中的變化與整個計算圖的可視化等。以下是 VisualDL 四個組件的簡要介紹:
計算圖(Graph)
VisualDL 提供的可視化計算圖是與 ONNX(Open Neural Network Exchange)相兼容的,通過與 Python SDK 協作,VisualDL 能與最主要的 DNN 框架相匹配,包括 PaddlePaddle、PyTorch 和 MXNet。下圖展示了 VisualDL 的計算圖可視化:
標量(Scalar)
標量可用來展示訓練迭代過程中損失函數的變化趨勢。
圖像(Image)
圖像可用來可視化任何張量或中間生成的圖像。
直方圖(Histogram)
直方圖可用來可視化參數的分佈或任何張量的變化趨勢等。
VisualDL 的使用
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())
在訓練過程生成了一些日誌後,我們可以登錄控制面板並查看實時的數據可視化效果,登錄的方式也和 TensorBoard 類似,只需要在命令窗口中輸入以下命令:
- visualDL --logdir
當然,我們也能更改登錄端口或遠程登陸的主機的 IP 地址。讀者若需要了解這一部分的具體過程和安裝方法等內容,可詳細查閱該 GitHub 項目的說明。
祖明知乎文章地址:https://zhuanlan.zhihu.com/p/32984137