python 画图像训练结果的loss图

Posted marszhw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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图的主要内容,如果未能解决你的问题,请参考以下文章

python 如何画出KD数

Tensorflow+keras使用keras API保存模型权重plot画loss损失函数保存训练loss值

Tensorflow+keras使用keras API保存模型权重plot画loss损失函数保存训练loss值

知识蒸馏DEiT算法实战:使用RegNet蒸馏DEiT模型

知识蒸馏DEiT算法实战:使用RegNet蒸馏DEiT模型

loss曲线画出来是直线