. 基本定义
-
epoch (轮,周期):
一个epoch代表“所有训练数据被完整训练一遍”。
例如有1000条数据,每个epoch就是“模型看完整这1000条数据一次”。
-
step (步,迭代步):
一个step指“模型基于一个batch(批次)完成一次参数更新”。
例如,每次输入batch_size=32条数据,模型把这32条数据喂进去,完成一次前向和反向传播+参数更新,这就叫1 step。
2. epoch与step的数学关系
假设你有:
- 数据集总条数:$N$
- batch size(每次训练的样本数):$B$
每一个epoch会有的总step数:
steps per epoch=⌈BN⌉
T个epoch总共多少step?
总step数=T×⌈BN⌉
(⌈x⌉ 表示向上取整,因为最后一个batch通常可能不是整组)
3. 例子
比如你有10000条训练数据,batch_size=32。
-
每个epoch要:
3210000≈312.5取整,每个epoch有313个step 。
-
如果训练10个epoch,总共:
10×313=3130 steps
4. 常见用法辨析
- step常用于 :
- 优化器几步更新一次参数
- 记录loss/输出log/梯度累计(gradient accumulation)
- 保存checkpoint间隔
- epoch常用于 :
- 设定训练总轮数(如训练5个epoch)
- 验证或评估模型的节奏(如每个epoch验证一次)
5. 简明口诀总结
- step:一个batch训练更新一次参数
- epoch:所有数据训练一遍


被折叠的 条评论
为什么被折叠?



