在深度学习和机器学习中,Epoch(轮次或周期) 是一个核心训练概念,指模型在整个训练数据集上完成一次完整遍历的过程。以下是关于 Epoch 的详细解析:
基本含义
与相关概念的关系
学习数据模式
平衡欠拟合与过拟合
性能监控节点
关键考虑因素
因素 | 建议 |
---|---|
数据量大小 | 数据量大 → 需更多 Epoch;数据量小 → 减少 Epoch 防过拟合。 |
任务复杂度 | 复杂任务(如医疗诊断)需更多 Epoch;简单任务(如二分类)可减少。 |
计算资源 | 资源有限时选择较少 Epoch,避免耗时过长。 |
调优方法
Epoch ≠ Iteration
Epoch vs Episode(强化学习)
# PyTorch 训练循环示例(Epoch 控制)
for epoch in range(num_epochs): # num_epochs 设为超参数
for batch in dataloader: # 每个 batch 迭代一次
outputs = model(batch) # 前向传播
loss = criterion(outputs, labels)
optimizer.zero_grad() # 清空梯度
loss.backward() # 反向传播
optimizer.step() # 更新参数
print(f"Epoch {epoch+1}, Loss: {loss.item()}") # 每个 Epoch 输出损失
扩展建议:若需实践调参,可从 10-20 个 Epoch 开始,观察验证集性能再逐步增加。