yolov3利用results.txt绘制loss曲线

我的results.txt文件总内容的格式

     0/499    0.281G      4.54      3.64         0      8.18         2       512         1    0.0227     0.506    0.0444      2.99      2.47         0
     1/499    0.489G      3.47      2.32         0       5.8         2       512     0.244         1     0.675     0.393      3.46      1.39         0
     2/499    0.489G       2.8      1.72         0      4.52         2       512     0.408         1     0.833     0.579      2.18      1.05         0
     3/499    0.489G      2.21      1.33         0      3.55         2       512     0.683     0.981     0.885     0.805      1.65     0.864         0
     4/499    0.489G       1.9      1.07         0      2.97         1       512     0.751         1      0.86     0.858      1.61     0.777      

绘制loss图代码


'''
画loss图的代码,前提是results.txt文档中只能是数字
我的第一列是epoch是0/99,1/99,2/99...的格式,需要改成0,1,2,3...
第二列是0.396G的格式,需要把G去掉
第六列是loss值
'''
import numpy as np
import matplotlib.pyplot as plt
import pylab as pl
from mpl_toolkits.axes_grid1.inset_locator import inset_axes
data1_loss =np.loadtxt("F:/mx_matting/yolov3-master/results.txt")
#print(data1_loss[0])


x = data1_loss[:,0]   #冒号左边是行范围,冒号右边列范围。取第一列
y = data1_loss[:,5]   #取第六列
fig = plt.figure(figsize = (7,5))       #figsize是图片的大小`
ax1 = fig.add_subplot(1, 1, 1) # ax1是子图的名字`
pl.plot(x,y,'r-',label=u'result')
# ‘’g‘’代表“green”,表示画出的曲线是绿色,“-”代表画的曲线是实线,可自行选择,label代表的是图例的名称,一般要在名称前面加一个u,如果名称是中文,会显示不出来,目前还不知道怎么解决。
# p2 = pl.plot(x1, y1,'r-', label = u'RCSCA_Net')
#显示图例
# p3 = pl.plot(x2,y2, 'b-', label = u'SCRCA_Net')
pl.legend()
pl.xlabel(u'epoch')
pl.ylabel(u'loss')
plt.title(' loss for yolov3 models in training')
plt.show()

画出来的loss曲线是这样的
yolov3利用results.txt绘制loss曲线_第1张图片

你可能感兴趣的:(yolovs,python)