yolov5每次train完成(如果没有中途退出)都会在run目录下生成expX目录(X代表生成结果次数 第一次训练完成生成exp0 第二次生成exp1…以此类推)。expX目录下会保存训练生成的weights以及result.txt文件,其中weights是训练生成权重,可用于detect。
在写论文时我们需要以可视化的方式展示训练结果 -> result.png。在此以mAP@0.5为例绘制
import csv
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
df1 = pd.read_csv("results1.csv") #读取文件1
df2 = pd.read_csv("results2.csv") #读取文件2
epoch_1 = df1[" epoch"].values.tolist() #通过文件表头信息读取文件内容
mAP5_1 = df1[" metrics/mAP_0.5"].values.tolist()
epoch_2 = df2[" epoch"].values.tolist() #通过文件表头信息读取文件内容
mAP5_2 = df2[" metrics/mAP_0.5"].values.tolist()
plt.figure(figsize=(8, 5))
plt.plot(epoch_1,mAP5_1,color='red', label='yolov5s改进算法') #设置曲线相关系数
plt.plot(epoch_2,mAP5_2,color='black',label='yolov5s原始算法') #设置曲线相关系数
plt.xticks(fontsize=10)
plt.yticks(fontsize=10)
plt.ylim(0, 1)
plt.xlim(0, 100) #设置坐标轴取值范围
plt.xlabel('epochs', fontsize=14)
plt.ylabel('mAP_0.5', fontsize=14)
plt.legend(fontsize=12,loc="best") #设置标签位置及大小
plt.savefig("test.png",bbox_inches='tight')
plt.show()