YOLOv8 Trainer类如何选择最优损失模型?损失指标及epoch信息咨询
YOLOv8 最优模型保存逻辑与对应Epoch查询
最优模型的损失指标选择
YOLOv8的Trainer类默认基于**验证集总损失(val/loss)**来选择并保存最优模型,而非训练集损失。这是因为训练集损失仅反映模型在训练数据上的拟合程度,而验证集损失更能体现模型的泛化能力,是衡量模型性能的核心指标。当某一轮epoch的验证集损失达到训练过程中的最小值时,Trainer会自动保存该轮的模型为best.pt。
查询best.pt对应的Epoch
有三种简单方式可以找到best.pt对应的训练epoch:
- 训练日志/控制台输出:训练过程中,每当发现新的最优模型时,控制台会打印类似
New best model found 🎉的提示,该行日志对应的epoch就是best.pt的训练轮次。 - results.csv文件:训练结束后,
runs/train/目录下会生成results.csv文件,其中每行记录一个epoch的所有指标(包括训练损失、验证损失、mAP等)。找到val/loss值最小的那一行,对应的epoch列数值就是目标轮次。 - 代码读取模型属性:加载
best.pt后,直接读取模型的epoch属性即可:
from ultralytics import YOLO model = YOLO('runs/train/weights/best.pt') print(f"best.pt 对应的训练epoch: {model.epoch}")
内容的提问来源于stack exchange,提问作者Austin
相关产品推荐
相关产品推荐

