YOLO训练结果简单总结

Home - Ultralytics YOLO Docs笔者最近完成了一次YOLO训练,对训练结果文件有些不理解,故查询资料总结

本文参考Ultralytics YOLO Docs(英文)文件

Home - Ultralytics YOLO Docs

weights文件夹

文件夹里存放权重文件,其中best.pt代表最优,last.pt代表最后一次

args.yaml文件

文件里是配置文件,包含epochs、model、time等等

F1_curve

参考:YOLO Performance Metrics - Ultralytics YOLO Docs

F1 分数曲线 (F1_curve.png): 该曲线表示不同阈值下的 F1 分数。通过解读这条曲线,可以深入了解模型在不同阈值下假阳性和假阴性之间的平衡情况。

PR_curve 

精度-召回曲线 (PR_curve.png): 对于任何分类问题来说,这条曲线都是不可或缺的可视化图表,它展示了在不同阈值下精度和召回率之间的权衡。在处理不平衡类时,它显得尤为重要。

P_curve 

精度曲线 (P_curve.png): 不同阈值下精度值的图形表示。该曲线有助于了解精度是如何随着阈值的变化而变化的。

R_curve 

召回曲线 (R_curve.png): 相应地,此图说明了召回值在不同阈值下的变化情况。

confusion_matrix

混淆矩阵 (confusion_matrix.png): 混淆矩阵提供了结果的详细视图,展示了每个类别的真阳性、真阴性、假阳性和假阴性的计数。(跟TP/TN/FP/FN有关)

confusion_matrix_normalized

 归一化混淆矩阵(confusion_matrix_normalized.png): 该可视化是混淆矩阵的归一化版本。它以比例而非原始计数来表示数据。这种格式更便于比较不同类别的性能。 

val_batchX_labels

验证批标签(val_batchX_labels.jpg): 这些图片描述了验证数据集中不同批次的基本真实标签。它们清楚地显示了数据集中的对象及其各自的位置。 

val_batchX_pred

验证批次预测(val_batchX_pred.jpg): 这些可视图与标签图像形成对比,显示了 YOLOv8 模型对各个批次的预测结果。通过与标签图像进行对比,您可以轻松评估模型检测和分类对象的视觉效果。 

labels_correlogram

反映了x,y,width,height之间的相互关系

labels

反映了训练集数据量,标签,中心点xy,宽高

results.jpg

反映了box(bounding box),cls(classification),dfl(Distribution Focal Loss)损失函数

以及precision,recall,mAP(表示PR图里图线与轴所围成的面积取平均)

results.csv

该目录包含绘制results.jpg所需结果,包含损失函数,精度、召回率、mAP、学习率 lr(Learning Rate)

train_batch0(train_batch1、train_batch2)

train_batch0.jpg是训练过程中的一张图片,它是前3次迭代的训练图片以及gt框(ground truth框)合成为一张图片保存的结果,这个图片的目的是为了方便你检查训练数据是否有问题。

### 绘制 YOLO 训练损失与验证损失曲线 为了绘制 YOLO训练损失和验证损失曲线,可以使用 Python 中的 `matplotlib` 库来完成静态绘图,或者利用 TensorBoard 实现动态可视化。以下是两种方法的具体实现方式。 #### 使用 Matplotlib 绘制损失曲线 如果数据是以日志文件的形式存储,则可以通过解析这些日志文件提取训练损失和验证损失的数据点并绘制图像。 ```python import matplotlib.pyplot as plt # 假设我们有如下数据结构 train_loss = [0.9, 0.7, 0.5, 0.3, 0.2] # 训练损失随轮次变化 val_loss = [1.0, 0.8, 0.6, 0.4, 0.3] # 验证损失随轮次变化 epochs = range(1, len(train_loss)+1) plt.figure(figsize=(10, 6)) plt.plot(epochs, train_loss, 'o-', color='orange', label="Training Loss") # 橙色代表训练集损失 plt.plot(epochs, val_loss, 'o-', color='blue', label="Validation Loss") # 蓝色代表验证集损失 plt.title('Training and Validation Loss') plt.xlabel('Epochs') # 设置横轴标签为轮次 plt.ylabel('Loss') # 设置纵轴标签为损失值 plt.legend() # 显示图例 plt.grid(True) # 添加网格线以便观察更清晰 plt.show() ``` 上述代码会生成一张图表,其中橙色线条表示训练过程中的损失情况而蓝色则对应于验证阶段的表现[^2]。 #### 利用 TensorBoard 可视化 TensorBoard 是 TensorFlow 提供的一个工具包,用于监控机器学习实验的过程。它能够实时显示各种指标的变化趋势,比如精度、召回率以及这里提到的损失函数等。 要在 TensorBoard 上查看 YOLO训练进度,首先需要确保在训练过程中记录下必要的统计数据至事件文件中: ```python from torch.utils.tensorboard import SummaryWriter writer = SummaryWriter() for epoch in range(num_epochs): ... writer.add_scalar('Loss/train', running_train_loss / num_batches, epoch) writer.add_scalar('Loss/validation', validation_loss, epoch) writer.close() ``` 启动 TensorBoard 后打开浏览器访问指定地址即可看到类似下面这样的界面展示不同类型的性能度量随着时间推移所发生的变化。 通过这两种手段之一就可以很好地跟踪分析模型在整个迭代期间表现出来的特性从而做出相应的调整优化措施[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值