(最好用的方法)YOLOv5读取train文件下的CSV文件绘制曲线进行不同模型效果对比

目录

目的:

代码:

效果图:

特别提示

解决办法: 将CSV文件数据后面 “,”进行手动删除即可。


目的:

为了方便对比不同模型的性能,我们可以通过读取train文件下的CSV文件绘制曲线从而达到直观的对比效果。这里采用的是yoloV5模型,具体代码如下:

代码:

# -*- coding: utf-8 -*-
# @Time : 2023/3/23 12:00
# @Auth : Hao

import matplotlib.pyplot as plt
import pandas as pd
import matplotlib as mpl
mpl.rcParams['font.family'] = 'sans-serif'
# mpl.rcParams['font.sans-serif'] = 'NSimSun,Times New Roman' #设置字体
plt.rcParams['font.sans-serif'] = ['SimHei']  # 正常显示中文标签
plt.figure()  # 设置图框
f=open("results.csv",encoding="utf-8")
#设置表头,为了方便取出你想要的那几列的数据。pd.read_csv具体用法可百度。这里为了方便我只设置了epoch和map0.5
df=pd.read_csv(f,delim_whitespace=True,names=["epoch","1","2","3","4","5","metrics/mAP_0.5","7","8","9","10","11","12","13"],
header=0,usecols=["epoch","metrics/mAP_0.5"])
step = df["epoch"].values.tolist()# 通过文件1表头信息读取文件内容
map= df["metrics/mAP_0.5"].values.tolist()# 通过文件表头信息读取文件内容
plt.plot(step,map,color='red',label='yolov5s+改进数据集') #设置曲线1相关系数
#同样的操作读取文件2的信息
plt.plot(step,map,color='blue',label='yolov5s')#设置曲线2的相关系数
plt.xticks(fontsize=10)
plt.yticks(fontsize=10)

plt.ylim(0, 1)
plt.xlim(0, 99)  # 设置坐标轴取值范围
plt.xlabel('epochs', fontsize=10)
plt.ylabel('mAP', fontsize=10)
plt.legend(fontsize=15, loc="upper right")  # 设置标签位置及大小
plt.show()

效果图:

 特别提示:

如果你的最终效果图如下所示:

解决办法: 将CSV文件数据后面 “,”进行手动删除即可。

  • 5
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值