← 课程库
预训练工程模块四 · 基于批次数据的训练方法计算13 分钟

epoch 与参数更新步数

一道必考计算题:到底 step 了多少次

学完这节你能:
  • 区分 epoch、step、batch
  • 会算总更新步数
  • 把梯度累积算进去

  • 1 个 step(参数更新)= 处理 1 个全局 batch 并更新一次参数。
  • 1 个 epoch = 完整过一遍训练集。
  • 每个 epoch 的步数 = 训练样本数 / 全局批大小。
  • 总更新步数 = 每 epoch 步数 × epoch 数。
更新步数 = ⌈ 样本数 / 全局批大小 ⌉ × epoch 数
全局批大小 = 单卡批 × 梯度累积 × 卡数
手算
样本数 = 100,000;单卡批 = 16;梯度累积 = 2;卡数 = 4;epoch = 3
全局批 = 16 × 2 × 4 = 128
每 epoch 步数 = 100000 / 128 ≈ 782
总步数 = 782 × 3 ≈ 2346 次参数更新
自测样本 8000、全局批 32、训练 5 个 epoch,总更新步数约为:
// 带走一句话

更新步数=(样本数/全局批)×epoch;全局批=单卡批×梯度累积×卡数。这是必考计算题。

独立练习

做到这些,才算完成本节

  1. 替换例题中的数值,从头独立算一遍。
  2. 用数量级、边界值或反向计算检查结果是否合理。
学习记录

记录本节阅读进度

建议先独立回答自测。读完记录不等于已经掌握。

继续下一课
← 上一课
Batch、Batch Size 与梯度累积
下一课 →
学习率:预热、衰减、Cosine

学完不要急着赶进度:去练习自测,或完成对应的阶段实验