当前位置: 首页 > news >正文

绘制YOLOv11模型在训练过程中,精准率,召回率,mAP_0.5,mAP_0.5:0.95,以及各种损失的变化曲线

一、本文介绍

本文用于绘制模型在训练过程中,精准率,召回率,mAP_0.5,mAP_0.5:0.95,以及各种损失的变化曲线。用以比较不同算法的收敛速度,最终精度等,并且能够在论文中直观的展示改进效果。支持多文件的数据比较。

在这里插入图片描述

在这里插入图片描述

文章目录

  • 一、本文介绍
  • 二、results.csv文件结构介绍
  • 三、各指标绘制
    • 3.1 代码
    • 3.2 使用说明
    • 3.3 效果
  • 四、多文件绘制
    • 4.1 代码
    • 4.2 使用说明
    • 4.3 效果

二、results.csv文件结构介绍

results.csv文件是模型在训练过程中,实时记录训练的结果,和当时控制台输出的信息一致。当然还包含一些验证损失,学习率变化等数据。详细的记录项包括:epochtrain/box_losstrain/cls_losstrain/dfl_lossmetrics/precisionmetrics/recallmetrics/mAP_0.5metrics/mAP_0.5:0.95val/box_lossval/cls_lossval/dfl_lossx/lr0x/lr1x/lr2

epoch:记录训练的轮次,总轮次为训练文件中设置的epochs大小。

train/box_loss:边界框损失。在训练过程中,此值逐渐变小,越小表示模型预测的边界框与真实边界框之间的差异越小。

train/cls_loss:分类损失。在训练过程中,此值逐渐变小,越小表示模型对目标类别的预测越准确。

train/dfl_loss:分布焦点损失。将边界框的回归问题转化为对边界框四个边的分布预测问题,越小表示预测越准确。

metrics/precision:精确率也称为查准率。用于衡量所有被预测为正类的样本中,真正的正类样本所占的比例。

metrics/recall:召回率也称为查全率。用于衡量所有实际为正类的样本中,被正确预测为正类的样本所占的比例。

metrics/mAP_0.5:衡量目标检测模型在IoU 阈值为0.5时,对不同类别的检测性能的平均水平。

metrics/mAP_0.5:0.95:表示在不同IoU阈值(从0.5到0.95,步长0.05)上的平均mAP。

val/box_lossval/cls_lossval/dfl_loss:在验证集上的损失变换。

x/lr0x/lr1x/lr2:训练过程中的学习率变化。

三、各指标绘制

3.1 代码

此处仅以mAP_0.5这一列的数据为例进行展示,其余指标的绘制流程,代码与此完全一致。

import pandas as pd
import matplotlib.pyplot as plt# 读取 CSV 文件
data = pd.read_csv('results.csv')  #替换成训练结果的csv路径# 获取'metrics/mAP_0.5'列的数据
mAP_05_data = data['     metrics/mAP_0.5']# 绘制曲线
plt.plot(mAP_05_data, label='Model-1', color='red', linewidth=1)# 添加图例
plt.legend(loc='lower right')# 添加标题和坐标轴标签
plt.xlabel('Epoch')
plt.ylabel('mAP_0.5(%)')
plt.title('mAP_0.5 Curve')# 网格线
plt.grid(True)# 保存图像到同目录下
plt.savefig('mAP_05_curve.png')
# plt.show()

3.2 使用说明

  1. 代码中,每一步均作了注释,可自行修改。
  2. 此代码的位置要和results.csv文件在同一目录下,或者在data = pd.read_csv('results.csv')中指定csv路径。
  3. mAP_05_data = data[' metrics/mAP_0.5']这一行中,要注意列名是要包含前方这些空格的,这里很重要。想要绘制那个指标,直接从csv文件中复制对应的列名,确保无误。要换成其他指标,只需要修改这里的列名即可。

在这里插入图片描述

3.3 效果

单文件的mAP_0.5指标绘制效果如下:

在这里插入图片描述

四、多文件绘制

4.1 代码

import pandas as pd
import matplotlib.pyplot as plt# 读取 CSV 文件
data = pd.read_csv('results.csv')  #替换成训练结果的csv路径
data_2 = pd.read_csv('results (1).csv') #替换成训练结果的csv路径
data_3 = pd.read_csv('results (2).csv') #替换成训练结果的csv路径# 获取'metrics/mAP_0.5'列的数据
mAP_05_data = data['     metrics/mAP_0.5']
mAP_05_data_2 = data_2['     metrics/mAP_0.5']
mAP_05_data_3 = data_3['     metrics/mAP_0.5']# 绘制曲线
plt.plot(mAP_05_data, label='Model-1', color='red', linewidth=1)
plt.plot(mAP_05_data_2, label='Model-2', color='green', linewidth=1)
plt.plot(mAP_05_data_3, label='Model-3', color='blue', linewidth=1)# 添加图例
plt.legend(loc='lower right')# 添加标题和坐标轴标签
plt.xlabel('Epoch')
plt.ylabel('mAP_0.5(%)')
plt.title('mAP_0.5Curve')# 网格线
plt.grid(True)# 保存图像到同目录下
# plt.savefig('mAP_05_curve.png')
plt.show()

4.2 使用说明

除了满足单文件绘制的要求以外还需注意在添加多个文件时,只需要分别指定文件路径,获取指定列名,绘制曲线,三者全部完成后就可以在一张图上绘制结果并进行比较了。

4.3 效果

多文件的mAP_0.5指标绘制效果如下:

在这里插入图片描述


http://www.mrgr.cn/news/47029.html

相关文章:

  • HyperGNNs超图神经网络模型详解
  • 【Vim Masterclass 笔记12】S06L26 + L27:Vim 文本的搜索、查找及替换同步练习(含点评课)
  • c语言-----常识问题
  • 【Linux网络编程】数据链路层 | MAC帧 | ARP协议
  • 非PHP开源内容管理系统(CMS)一览
  • CentOS 7.9 通过 yum 安装 Docker
  • Sequelize条件查询,count总数不对
  • Python中的HTTP高手:如何玩转requests模块
  • Unity 3d 继承MonoBahaviour的单例
  • webpack
  • 革新锂电池PACK线:重塑生产效能新高度
  • 2024年特种设备考试真题题库及答案
  • QUIC:革新网络传输的新一代协议
  • 【网页设计】CSS Part2
  • 堆区空间操作
  • 基于 C# .NET Framework 4.0 开发实现 WCF 服务实例详解(一)
  • selenium获取cookie的方法
  • 基于遗传粒子群算法的无人机路径规划【遗传算法|基本粒子群|遗传粒子群三种方法对比】
  • 使用Facebook Messenger数据进行AI模型微调的完整指南
  • 软考系统分析师知识点七:数据库系统下
  • 探索新境界,尽在Codigger新版官网!
  • Llama-3.2-3B-Instruct PyTorch模型微调最佳实践
  • 9个热门.Net开源项目汇总!
  • 初学Qt之环境安装与 hello word
  • 洗衣店管理升级:Spring Boot订单系统
  • LeetCode518:零钱兑换