梯度累積步數 使用指南
依據目標等效批次與單卡批次,計算梯度累積步數,適用於視訊記憶體受限下的等效大批次訓練配置與分散式策略設計。
計算公式與原理
累積步數 = ⌈目標批次 / (單卡批次 × 卡數)⌉
視訊記憶體不夠放大 batch 時,用小批次連續跑若干步再把梯度相加、只做一次引數更新,等效於大批次訓練。注意歸一化層統計與 BatchNorm 仍按小批次計算,與真正的大 batch 不完全等價;學習率要按等效批次同步放大。
使用步驟
- 填寫「目標批次」。
- 填寫「單卡批次」。
- 填寫「GPU 數」。
- 結果區會即時更新;可一鍵複製結果用於記錄或彙報。
典型使用場景
- 等效 batch=單卡 batch×累積步數×GPU 數;累積步數=目標 batch/單卡 batch。
- 視訊記憶體不足時用小 batch 累積多次再更新,模擬大 batch 的統計效果。
- 累積期間不更新引數、只累加梯度,故最佳化步數變少、訓練更慢但等效 batch 更大。
算例參考
- 累積步數計算:目標 batch=128、單卡 batch=32、2 卡 → 累積步數=128/(32×2)=2。每 2 個小步累加梯度後更新一次,等效 batch=128。
注意事項
結果為按上述公式得到的理論估算值,實際表現受資料分佈、實現細節與執行環境影響,落地決策請以實測為準;本工具純前端執行,輸入不上傳伺服器。
- 累積會影響收斂嗎?
- 等效 batch 相同則統計近似一致,但累積使更新頻率降低、訓練更慢;學習率應按等效 batch 調整,而非單卡 batch。
- 累積步數設太大怎樣?
- 等效 batch 過大易泛化變差、視訊記憶體雖省但訓練極慢;且 BN 統計仍按小 batch,與真實大 batch 有偏差,需同步調大 BN 動量或使用同步 BN。