训练流程¶
把「数据 → 模型 → 损失 → 反传 → 更新 → 评估」写成可维护的闭环。
标准步骤¶
- 数据准备与清洗(见 数据管道)
- 数据集切分(训练 / 验证 / 测试)
- 模型构建
- 定义损失与优化器
- 训练与验证循环
- 评估与误差分析
- 导出与部署
推荐工作流¶
1. 先做一个能过拟合小子集的最小模型(证明管道通)
2. 加验证集与指标,确认可泛化信号
3. 再加增强 / 正则 / 调度器
4. 系统性调参,每次只动少数变量
5. 固定种子做几次复现,报告均值±方差
最小可靠训练骨架¶
model.train()
for epoch in range(epochs):
for x, y in train_loader:
x, y = x.to(device), y.to(device)
optimizer.zero_grad(set_to_none=True)
loss = criterion(model(x), y)
loss.backward()
optimizer.step()
metrics = evaluate(model, val_loader, device)
# 早停 / 存最优 checkpoint / 调学习率
评估时:model.eval() + torch.no_grad()。
工程增强¶
| 技巧 | 用途 |
|---|---|
| 混合精度 AMP | 加速、省显存 |
| 梯度累积 | 小显存模拟大 batch |
| 梯度裁剪 | 防爆炸 |
| Checkpoint | 保存 model/optim/epoch/最佳指标 |
更多调参见 调参清单,稳定性见 训练稳定性与 NaN 排查。