背景说明
凡是使用过yolov8算法的朋友都知道,在使用yolov8算法训练模型完成后,会在代码目录下默认生成一个runs文件夹,该文件夹通常用来保存模型的训练任务以及相关的模型信息。
如果我们按照任务分类进行点击进入,会发现每一个文件夹下面包含我们使用算法进行的每次操作,比如训练、验证、预测等。
本文主要针对yolov8训练的train文件夹相关内容进行介绍及说明。
目录介绍
当你使用 YOLOv8 进行训练后,生成的文件夹和文件包含了模型训练的各种信息。下面是一个典型的 YOLOv8 训练输出文件夹结构以及每个文件/文件夹的解释,以目标检测的训练文件夹为例(不同的yolov版本会有一些差异):
runs/
├── detect/
│ └── exp/
│ ├── weights/
│ │ ├── best.pt
│ │ └── last.pt
│ ├── results.png
│ ├── results.txt
│ ├── events.out.tfevents.xxxxx
│ ├── labels_correlogram.jpg
│ ├── confusion_matrix.png
│ ├── F1_curve.png
│ ├── PR_curve.png
│ ├── P_curve.png
│ ├── R_curve.png
│ └── val_batch*.jpg
└── other/
详细解释
weights/
best.pt
:这是训练过程中表现最好的模型权重文件。通常根据验证集上的性能指标(如mAP)来选择。last.pt
:这是训练结束时的最后一个模型权重文件。
results.png
- 这是一个图像,展示了训练过程中各种指标(如损失、精度、召回率等)如何随时间变化的曲线图。通过这个图,你可以直观地看到训练过程中的模型性能变化。
results.txt
- 这个文件包含了训练过程中的详细日志信息,包括每个epoch的损失值、学习率、精度等。
events.out.tfevents.xxxxx
- 这是 TensorBoard 使用的日志文件。如果你使用 TensorBoard 来可视化训练过程中的指标,这个文件会被加载并显示相应的数据。
labels_correlogram.jpg
- 这是一个标签共现矩阵图,显示了不同类别标签在数据集中同时出现的频率。这对于了解数据集中标签的分布和关联性非常有用。
confusion_matrix.png
- 混淆矩阵图,显示了模型在验证集上的分类性能。矩阵中的每个单元表示实际类别和预测类别之间的关系。
F1_curve.png
- F1分数曲线图,展示了F1分数随阈值变化的情况。F1分数是精度和召回率的调和平均数,反映了模型的整体性能。
PR_curve.png
- 精度-召回曲线图,展示了模型在不同阈值下的精度和召回率之间的权衡。
P_curve.png
- 精度曲线图,展示了模型在不同阈值下的精度变化情况。
R_curve.png
- 召回率曲线图,展示了模型在不同阈值下的召回率变化情况。
val_batch*.jpg
- 这些图像文件展示了模型在验证集上的一些预测结果,包括预测的边界框和类别标签。这些图像有助于直观地检查模型的检测性能。
实际训练过程中,会有一些差异,但是结果大同小异,以下是我训练后的结果截图:
对比了一下,主要还是和yolov的系列,比如yolov5,yolov7,yolov8有关,或者和版本号有关,但是主要的文件都是以上那些信息。