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()

  

 


					


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM