我的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曲线是这样的