每轮训练步数 使用指南
输入数据集规模与批次大小,计算每轮训练步数,适用于训练循环实现、步数对齐与分布式分片核对。
计算公式与原理
每卡步数 = ⌈样本数 / 批量⌉;每步覆盖样本 = 批量 × 卡数
多卡数据并行时,全局批量 = 单卡批量 × 卡数,每卡步数不变但每步实际看到的样本翻倍数等于卡数。因此扩卡后要保持等效训练强度,需按比例调大学习率或增加轮数。
使用步骤
- 填写「数据集大小」。
- 填写「批次大小」。
- 填写「GPU 数」。
- 结果区会即时更新;可一键复制结果用于记录或汇报。
典型使用场景
- 每轮步数 steps=⌈数据集样本数/batch_size⌉,决定单轮迭代次数。
- 分布式下每卡步数=⌈N/(batch×world_size)⌉,注意尾批与丢弃策略。
- 步数×单步耗时≈单轮时长,是训练排期与进度估算的基础。
算例参考
- 步数计算:N=50000, batch=64 → steps=⌈50000/64⌉=782 步/轮。4 卡数据并行每卡 batch=64 则每卡 782 步(总样本不变),等效 batch=256 使收敛更快。
注意事项
结果为按上述公式得到的理论估算值,实际表现受数据分布、实现细节与运行环境影响,落地决策请以实测为准;本工具纯前端运行,输入不上传服务器。
- 分布式每卡步数变少吗?
- 若每卡 batch 不变,每卡处理的样本数减少,步数按每卡样本算会减少;总计算量不变,只是并行加速,等效 batch 变大了。
- 尾批怎么影响步数?
- 向上取整已含尾批(不足 batch 的余量)。若启用 drop_last 则步数=⌊N/batch⌋,少算一个不完整批,需在指标上对应处理。