进阶提升 · 6模型训练与测试
核心概念
- 训练过程:通过迭代(epoch)不断优化损失函数,直至收敛。
- Checkpoints(模型权重保存点):训练中定期保存模型参数,用于恢复或测试。
- 测试/推理(Inference):利用训练好的模型对新数据进行预测,输出检测结果。
提出问题
- 如何在有限数据下验证模型是否收敛?
- 训练好的模型如何加载并用于推理?
- 如何避免配置文件被重复修改或叠加导致混乱?
论点与解决方案
- 训练:
- 设置好参数并运行训练脚本,过程会输出每个 epoch 的损失值。
- 数据少时收敛较快,但大数据集训练仍需较长时间。
- 需关注整体损失下降趋势,而不是单个 batch 的波动。
- 模型保存:
- 训练完成后,模型会保存到
checkpoint/
目录。
- 命名方式如
yolov3_checkpoint_100
,表示 100 个 epoch 后的权重。
- 每次运行前需清理旧配置,避免参数叠加。
- 推理测试:
- 使用
detect.py
脚本加载模型权重进行预测。
- 参数需指定:
- 输入数据文件夹(测试图像集合)。
- 模型权重路径。
- 类别索引到类别名称的映射文件。
- 输出结果保存到
output/
文件夹中,包含预测后的图像。
关键机制 / 细节
- 损失监控:
- 训练日志打印每轮 epoch 的总损失。
- 可用曲线可视化工具(如 TensorBoard)跟踪收敛情况。
- 推理流程:
- 输入图像 → 预处理(resize、归一化)。
- 模型前向传播 → 输出候选框。
- 后处理(阈值过滤 + NMS) → 最终检测结果。
- 配置文件注意事项:
- 每次重新训练前清理配置文件,避免旧参数遗留。
- 输出路径、类别映射文件需与模型保持一致。
总结
- 训练与测试是完整 pipeline 的两个阶段:训练关注损失收敛与模型保存,测试验证模型在实际数据上的效果。
- 配置管理至关重要:避免文件叠加导致错误。
- 工程价值:掌握训练–保存–推理的完整流程,是从理论走向应用的关键步骤。