每轮训练步数
输入数据集规模与批次大小,计算每轮训练步数,适用于训练循环实现、步数对齐与分布式分片核对。
🧮 Steps per Epoch Calculator
Compute the number of training steps per epoch from dataset size and batch size, for training-loop and sharding checks.
📐 计算公式 / 原理
每卡步数 = ⌈样本数 / 批量⌉;每步覆盖样本 = 批量 × 卡数
多卡数据并行时,全局批量 = 单卡批量 × 卡数,每卡步数不变但每步实际看到的样本翻倍数等于卡数。因此扩卡后要保持等效训练强度,需按比例调大学习率或增加轮数。
📐 计算公式与说明
步数 = ⌈数据/批次⌉
分布式下每卡步数不变,总样本覆盖相同。
📚 深度解析:每轮训练步数
💡 常见使用场景
- 每轮步数 steps=⌈数据集样本数/batch_size⌉,决定单轮迭代次数。
- 分布式下每卡步数=⌈N/(batch×world_size)⌉,注意尾批与丢弃策略。
- 步数×单步耗时≈单轮时长,是训练排期与进度估算的基础。
步数计算
N=50000, batch=64 → steps=⌈50000/64⌉=782 步/轮。4 卡数据并行每卡 batch=64 则每卡 782 步(总样本不变),等效 batch=256 使收敛更快。
❓ 常见问题(FAQ)
- 分布式每卡步数变少吗?
- 若每卡 batch 不变,每卡处理的样本数减少,步数按每卡样本算会减少;总计算量不变,只是并行加速,等效 batch 变大了。
- 尾批怎么影响步数?
- 向上取整已含尾批(不足 batch 的余量)。若启用 drop_last 则步数=⌊N/batch⌋,少算一个不完整批,需在指标上对应处理。