專注Python、AI、大數據,請關注公眾號七步編程!
人工智能方向的項目,和數據可視化是緊密相連的。
模型訓練過程中梯度下降過程是什么樣的?損失函數的走向如何?訓練模型的準確度怎么變化的?
清楚這些數據,對我們模型的優化至關重要。
由于人工智能項目往往伴隨著巨大數據量,用肉眼去逐個數據查看、分析是不顯示的。這時候就需要用到數據可視化和日志分析報告。
TensorFlow自帶的Tensorboard在模型和訓練過程可視化方面做得越來越好。但是,也越來越臃腫,對于初入人工智能的同學來說有一定的門檻。
人工智能方面的項目變得越來越規范化,以模型訓練、數據集準備為例,目前很多大公司已經發布了各自的自動機器學習平臺,讓工程師把更多精力放在優化策略上,而不是在準備數據、數據可視化方面。
本文,就來給大家介紹一款新型的機器學習可視化IDE,能夠讓人工智能研發過程變得更加簡單明了。
wandb

wandb是Weights & Biases的縮寫,這款工具能夠幫助跟蹤你的機器學習項目。它能夠自動記錄模型訓練過程中的超參數和輸出指標,然后可視化和比較結果,并快速與同事共享結果。
通過wandb,能夠給你的機器學習項目帶來強大的交互式可視化調試體驗,能夠自動化記錄Python腳本中的圖標,并且實時在網頁儀表盤展示它的結果,例如,損失函數、準確率、召回率,它能夠讓你在最短的時間內完成機器學習項目可視化圖片的制作。
總結而言,wandb有4項核心功能:
- 看板:跟蹤訓練過程,給出可視化結果
- 報告:保存和共享訓練過程中一些細節、有價值的信息
- 調優:使用超參數調優來優化你訓練的模型
- 工具:數據集和模型版本化
也就是說,wandb并不單純的是一款數據可視化工具。它具有更為強大的模型和數據版本管理。此外,還可以對你訓練的模型進行調優。
wandb另外一大亮點的就是強大的兼容性,它能夠和Jupyter、TensorFlow、Pytorch、Keras、Scikit、fast.ai、LightGBM、XGBoost一起結合使用。
因此,它不僅可以給你帶來時間和精力上的節省,還能夠給你的結果帶來質的改變。
舉幾個例子:
驗證數據可視化
wandb會自動選取一部分驗證數據,然后把它展示到面板上。例如,手寫體預測的結果、目標識別的包圍盒。

自然語言
使用自定義圖表可視化基于NLP注意力的模型

這里只給出2個示例,除了這些,它目前還有更多實用有價值的功能。而且,它還不斷在增加新功能。
使用教程
官方稱wandb為IDE,但是它更像TensorFlow、Pytorch一樣,是一款高級Python第三方工具包。它的安裝、使用都和Python其他工具包大同小異。
安裝
wandb的使用需要Python3,安裝非常簡單,直接通過pip命令即可安裝:
$ pip install wandb
登錄網站
使用wandb需要登錄wandb網站,你可以創建一個新賬號,也可以用GitHub或者google賬號進行登錄。
登錄之后,你會發現它像很多其他的web版IDE一樣,可以創建項目,而且每個項目下都會有各種看板、報告。
API Keys
登錄之后,點擊右上角頭像,進入User Settings,可以看到有API Keys。這個API Keys主要用于登錄,用于連接桌面項目和wandb后臺系統。
回到自己電腦桌面,打開終端,使用API Keys進行登錄:
$ wandb login <YOUR API KEYS>
記得,<YOUR API KEYS>要替換成你自己的API Keys。
訓練腳本
到此為止,工具層面的配置已經完成了,你需要的就是準備好你的訓練腳本。
訓練腳本的準備和正常情況完全一樣,像導入其他工具包一樣導入wandb,在wandb可以定義配置參數、dropout、日志監控等。
這里,給一個簡單的示例,寫一個名為train.py的腳本:
# Init wandb
import wandb
wandb.init(project="demo")
# Model instantiation code ...
# Log metrics with wandb
for _ in range(num_epochs):
train_model()
loss = calulate_loss()
wandb.log({"Loss": loss})
# Save model to wandb
np.save("weights", weights)
wandb.save("weights.npy")
可以發現,它和Tensorboard的使用有一些相通之處,直接可以在代碼中定義初始化、上傳日志、保持模型。
開始訓練
工具配置完了,訓練腳本也準備完了,下面開始訓練模型即可。
$ python train.py
這些步驟都是在本地終端下完成的,一定不要忘記前面第3步,用API Keys登錄。
這樣的話,執行訓練之后,它會在網頁端wandb項目管理界面自動添加一個對應的項目,點擊進入這個項目,就可以看到看板、報告等內容。