python 画图像训练结果的loss图

得到每个epoch的loss和predict精度后,就可以愉快地画图直观地看出训练结果和收敛性了。

# coding:utf-8
import matplotlib.pyplot as plt

data_dir = "D:\\result.txt"
Train_Loss_list = []
Train_Accuracy_list = []
Valid_Loss_list = []
Valid_Accuracy_list = []
f1 = open(data_dir,'r')
data = []
#把训练结果输出到result.txt里,比较笨的办法,按字节位数去取数字结果
for line in f1:
    if(line.find('train')>=0):
    # if (string.find(line, 'train') != -1):
        Train_Loss_list.append(line[12:18])
        Train_Accuracy_list.append(line[24:30])
    if (line.find('valid') >= 0):
    # if (string.find(line, 'valid') != -1):
        Valid_Loss_list.append(line[12:18])
        Valid_Accuracy_list.append(line[24:30])
f1.close()
#迭代了30次,所以x的取值范围为(0,30),然后再将每次相对应的准确率以及损失率附在x上
x1 = range(0, 30)
x2 = range(0, 30)
y1 = Train_Accuracy_list
y2 = Train_Loss_list
y3 = Valid_Accuracy_list
y4 = Valid_Loss_list
plt.subplot(2, 1, 1)
# plt.plot(x1, y1, 'o-',color='r')
plt.plot(x1, y1, 'o-',label="Train_Accuracy")
plt.plot(x1, y3, 'o-',label="Valid_Accuracy")
plt.title('Test accuracy vs. epoches')
plt.ylabel('Test accuracy')
plt.legend(loc='best')
plt.subplot(2, 1, 2)
plt.plot(x2, y2, '.-',label="Train_Loss")
plt.plot(x2, y4, '.-',label="Valid_Loss")
plt.xlabel('Test loss vs. epoches')
plt.ylabel('Test loss')
plt.legend(loc='best')
plt.show()

  

python 画图像训练结果的loss图_第1张图片

python 画图像训练结果的loss图_第2张图片

 


转载于:https://www.cnblogs.com/marszhw/p/10962903.html

你可能感兴趣的:(python 画图像训练结果的loss图)