import matplotlib.pyplot as plt
import numpy as np
import re
data1_loss=[]
data2_loss=[]
#文件中各提取关键数值所在的位置
Epoch = 0
train_loss = 0
train_acc = 1
test_loss =2
test_acc = 3
f =open("./loss.txt", 'r', encoding="utf8")
lines = f.readline()
while lines:
result1 = re.findall(r'\d+',lines) # 读取整数
result2 = re.findall(r"\d+\.\d{2}",lines) # 读取小数;\d{2}表示取2位数值;\d+ 表示不限制位数
#读取epoch和train_loss
print(type(result1[Epoch]),"===\n")
data1_loss.append(int(result1[Epoch]))
data1_loss.append(float(result2[train_loss]))
# 读取epoch和test_loss
data2_loss.append(int(result1[Epoch]))
data2_loss.append(float(result2[test_loss]))
lines = f.readline()
f.close()
#reshape为所需排序
data1_loss = np.reshape(data1_loss, [-1, 2])
data2_loss = np.reshape(data2_loss, [-1, 2])
print(data1_loss)
print(data2_loss)
# train
x = data1_loss[:,0]
y = data1_loss[:,1]
# test
x1 = data2_loss[:,0]
y1 = data2_loss[:,1]
fig = plt.figure(figsize = (7,5)) #figsize是图片的大小`
ax1 = fig.add_subplot(1, 1, 1) # ax1是子图的名字`
# "g"代表green,表示画出的曲线是绿色,"-"表示画出的曲线是实线,label表示图例的名称
plt.plot(x, y, 'r-', label=u'Dense_Unet')
plt.plot(x1, y1, 'b-', label=u'RCSCA_Net')
plt.legend()
plt.xlabel(u'iters')
plt.ylabel(u'loss')
plt.title('Compare loss for different models in training.')
plt.show()
loss.txt文件中的格式
Epoch: 1 train_loss = 4.142114 train_acc = 4.0993 test_loss = 3.234043 test_acc = 5.6693
Epoch: 2 train_loss = 3.693510 train_acc = 5.4395 test_loss = 3.214747 test_acc = 8.6614
Epoch: 3 train_loss = 3.471652 train_acc = 6.5432 test_loss = 3.209918 test_acc = 8.6614
Epoch: 4 train_loss = 3.385246 train_acc = 7.7651 test_loss = 3.203145 test_acc = 10.5512
Epoch: 5 train_loss = 3.276946 train_acc = 9.4994 test_loss = 3.190650 test_acc = 12.4409
Epoch: 6 train_loss = 3.210690 train_acc = 10.9578 test_loss = 3.166755 test_acc = 15.7480
Epoch: 7 train_loss = 3.136659 train_acc = 13.2440 test_loss = 3.122745 test_acc = 22.8346
Epoch: 8 train_loss = 3.023211 train_acc = 17.8163 test_loss = 3.052512 test_acc = 26.7717
Epoch: 9 train_loss = 2.899264 train_acc = 21.4032 test_loss = 2.920071 test_acc = 34.0157