深度学习入门文档深度页
Epoch、Batch 与 Iteration
Batch 是一次输入样本组,iteration 是一次训练计算,epoch 是完整遍历训练集。
学习目标
- 完成三者换算
- 解释 drop_last
- 区分梯度累积
为什么需要这个概念
大数据无法一次装入显存,因此按 batch 流式训练。
- 正确计算更新次数
- 理解 batch size 与显存
学习前需要掌握
背景与问题
大数据无法一次装入显存,因此按 batch 流式训练。
概念定义
小批量训练平衡显存、硬件并行和梯度噪声。
直观理解
一本题库分多页做,一页是 batch,做完一页是 iteration,整本做完是 epoch。
核心原理
保留尾批时每 epoch 批次数是 ceil(N/B);梯度累积时 iteration 不一定等于参数更新。
小 batch 梯度波动大,大 batch 占内存多且更新次数少。
数学表达
核心公式
N 是训练样本数,B 是 batch size。
变量含义
N训练样本数Bbatch size
计算步骤
- 1ceil(1050/100)=11
- 2尾批 50
代码对应位置
示例 1Epoch、Batch 与 Iteration · PyTorch 示例:验证Epoch、Batch 与 Iteration的输入、计算和输出。
变量解释
| 变量 | 含义 |
|---|---|
N | 训练样本数 |
B | batch size |
完整数值示例
1050 个样本
已知条件
- N=1050
- B=100
- 1
ceil(1050/100)=11
- 2
尾批 50
每 epoch 11 次 iteration
处理前后对比
计算与实现步骤
- 1
确定 N/B
- 2
设置 DataLoader
- 3
遍历 batch
- 4
每 epoch 打乱
- 5
记录更新数
代码实现
示例 1
Epoch、Batch 与 Iteration · PyTorch 示例
Epoch、Batch 与 Iteration · PyTorch 示例
PyTorch
example_01.py用途:验证Epoch、Batch 与 Iteration的输入、计算和输出。
loader=DataLoader(dataset,batch_size=100,shuffle=True,drop_last=False)
print(len(loader))代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
验证Epoch、Batch 与 Iteration的输入、计算和输出。
Step 1 · 1–2 行
输出中间参数、形状或最终指标,用于核对代码是否符合预期。
loader=DataLoader(dataset,batch_size=100,shuffle=True,drop_last=False)
print(len(loader))预期输出或运行结果
1050 条数据时输出 11。
常见错误 · 3 条
- SGD 等于 batch=1
- 忽略尾批
- 梯度累积仍逐 batch step
实际应用
- 训练预算
- 显存规划
常见错误
SGD 等于 batch=1
忽略尾批
梯度累积仍逐 batch step
文档来源
03_Epoch_Batch与Iteration原始文档
学习资料/deeplearning/03_Epoch_Batch与Iteration.md- §1–5 基本概念与换算
- §8 Batch Size 影响
- §10 梯度累积
常见问题
epoch 是否等于更新一次?
不是,通常包含多个 batch 更新。
drop_last 何时考虑?
固定 batch 统计或尾批过小时。
推荐学习资料
暂未收录相关资料
参考库不会生成虚假资源或无效外部链接。