梯度累積步數

🧮 Gradient Accumulation Steps Calculator

Compute how many gradient accumulation steps you need to reach a target effective batch size when a single device batch is limited by memory.

📐 計算公式 / 原理
累積步數 = ⌈目標批次 / (單卡批次 × 卡數)⌉
視訊記憶體不夠放大 batch 時,用小批次連續跑若干步再把梯度相加、只做一次引數更新,等效於大批次訓練。注意歸一化層統計與 BatchNorm 仍按小批次計算,與真正的大 batch 不完全等價;學習率要按等效批次同步放大。

📐 計算公式與說明

累積 = ⌈目標批次 /(單卡批次×GPU數)⌉

累積步數越多視訊記憶體佔用越低。

📚 深度解析:梯度累積步數

💡 常見使用場景

累積步數計算
目標 batch=128、單卡 batch=32、2 卡 → 累積步數=128/(32×2)=2。每 2 個小步累加梯度後更新一次,等效 batch=128。

❓ 常見問題(FAQ)

累積會影響收斂嗎?
等效 batch 相同則統計近似一致,但累積使更新頻率降低、訓練更慢;學習率應按等效 batch 調整,而非單卡 batch。
累積步數設太大怎樣?
等效 batch 過大易泛化變差、視訊記憶體雖省但訓練極慢;且 BN 統計仍按小 batch,與真實大 batch 有偏差,需同步調大 BN 動量或使用同步 BN。