1. 程式人生 > 其它 >Wandb:模型訓練最強輔助

Wandb:模型訓練最強輔助

 

 

如果說到深度學習中訓練資料的記錄工具,最先想到應該是TensorBoard(或者TensorBoardX)。不過,相比較TensorBoard而言,Wandb更加的強大,主要體現在以下的幾個方面:

  1. 復現模型:Wandb更有利於復現模型。
    這是因為Wandb不僅記錄指標,還會記錄超引數和程式碼版本。
  2. 自動上傳雲端:
    如果你把專案交給同事或者要去度假,Wandb可以讓你便捷地檢視你製作的所有模型,你就不必花費大量時間來重新執行舊實驗。
  3. 快速、靈活的整合:
    只需5分鐘即可把Wandb加到自己的專案。
    下載Wandb免費的開源Python包,然後在程式碼中插入幾行,以後你每次執行模型都會得到記錄完備的指標和記錄。
  4. 集中式指示板:
    Wandb提供同樣的集中式指示板。不管在哪裡訓練模型,不管是在本地機器、實驗室叢集還是在雲端例項;
    這樣就不必花時間從別的機器上覆制TensorBoard檔案。
  5. 強大的表格:
    對不同模型的結果進行搜尋、篩選、分類和分組。
    可以輕而易舉地檢視成千上萬個模型版本,並找到不同任務的最佳模型。
    而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})

3 Next

接下來,會結合程式碼分享如何使用Wandb的各個工具。請大家掃碼下面二維碼,第一時間獲取最新更新。