梯度累积步数

🧮 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。