
如果說到深度學習中訓練數據的記錄工具,最先想到應該是TensorBoard(或者TensorBoardX)。不過,相比較TensorBoard而言,Wandb更加的強大,主要體現在以下的幾個方面:
- 復現模型:Wandb更有利於復現模型。
這是因為Wandb不僅記錄指標,還會記錄超參數和代碼版本。 - 自動上傳雲端:
如果你把項目交給同事或者要去度假,Wandb可以讓你便捷地查看你制作的所有模型,你就不必花費大量時間來重新運行舊實驗。 - 快速、靈活的集成:
只需5分鍾即可把Wandb加到自己的項目。
下載Wandb免費的開源Python包,然后在代碼中插入幾行,以后你每次運行模型都會得到記錄完備的指標和記錄。 - 集中式指示板:
Wandb提供同樣的集中式指示板。不管在哪里訓練模型,不管是在本地機器、實驗室集群還是在雲端實例;
這樣就不必花時間從別的機器上復制TensorBoard文件。 - 強大的表格:
對不同模型的結果進行搜索、篩選、分類和分組。
可以輕而易舉地查看成千上萬個模型版本,並找到不同任務的最佳模型。
而TensorBoard本身不適合大型項目。

1 Wandb
1.1 功能
- 保存訓練運行中使用的超參數
- 搜索、比較和可視化訓練的運行
- 在運行的同時分析系統硬件的情況如:CPU和GPU使用率
- 在團隊中分享訓練數據
- 永遠保存可用的實驗記錄
1.2 提供的工具
- Dashboard:記錄實驗過程、將結果可視化;

- Reports:保存和分享可復制的成果/結論;

- Sweeps:通過改變超參數來優化模型;

- Artifacts:可以自己搭建pipline實現保存儲存數據集和模型以及評估結果的流程。

1.3 將會上傳哪些內容?Wandb記錄的全部數據都保存在本地機器上,位於一個wandb路徑,然后同步到雲端。(1)自動記錄
- 系統指標:處理器和GPU使用率、網絡等。由命令nvidia-smi得出這些指標,這些指標位於運行頁“系統”選項卡。
- 命令行:記錄標准輸出和標准錯誤,並顯示於運行頁“日志”選項卡。
- git提交:記錄最近的git提交,並顯示於運行頁“概況”選項卡。
- 文件:requirements.txt文件,以及用於運行項並保存在wandb路徑的全部文件,將被上傳並顯示於運行頁“文件”選項卡。
(2)有明確調用才記錄 當涉及數據和模型指標時,你可以明確決定要記錄哪些東西。
- 數據集:你必須明確記錄圖像或其它數據集樣本,這樣才能保存到權閾。
- PyTorch梯度:加入wandb.watch(模型),即可在界面中看到權值的梯度直方圖。
- 配置(config):記錄超參數、數據集鏈接以及所使用的架構名稱,並作為config的參數,傳值方式如下:wandb.init(config=your_config_dictionary)
- 指標:用wandb.log()記錄模型的參數。如果你記錄的是訓練循環內的指標,如准確率、損失,就可以在界面中看到實時更新的圖表。
2 Wandb的五行代碼使用法
Wandb 基本接口如下:
wandb.init — 在訓練腳本開頭初始化一個新的運行項; wandb.config — 跟蹤超參數; wandb.log — 在訓練循環中持續記錄變化的指標; wandb.save — 保存運行項相關文件,如模型權值; wandb.restore — 運行指定運行項時,恢復代碼狀態。
對於Any framework,使用wandb的代碼如下:
# Flexible integration for any Python script import wandb # 1. Start a W&B run wandb.init(project='gpt3') # 2. Save model inputs and hyperparameters config = wandb.config config.learning_rate = 0.01 # Model training here # 3. Log metrics over time to visualize performance wandb.log({"loss": loss})
原文鏈接:https://zhuanlan.zhihu.com/p/342300434
