梯度累积步数
依据目标等效批次与单卡批次,计算梯度累积步数,适用于显存受限下的等效大批次训练配置与分布式策略设计。
🧮 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=单卡 batch×累积步数×GPU 数;累积步数=目标 batch/单卡 batch。
- 显存不足时用小 batch 累积多次再更新,模拟大 batch 的统计效果。
- 累积期间不更新参数、只累加梯度,故优化步数变少、训练更慢但等效 batch 更大。
累积步数计算
目标 batch=128、单卡 batch=32、2 卡 → 累积步数=128/(32×2)=2。每 2 个小步累加梯度后更新一次,等效 batch=128。
❓ 常见问题(FAQ)
- 累积会影响收敛吗?
- 等效 batch 相同则统计近似一致,但累积使更新频率降低、训练更慢;学习率应按等效 batch 调整,而非单卡 batch。
- 累积步数设太大怎样?
- 等效 batch 过大易泛化变差、显存虽省但训练极慢;且 BN 统计仍按小 batch,与真实大 batch 有偏差,需同步调大 BN 动量或使用同步 BN。