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

      

    
    
  • 相关阅读:
    原生js中,call(),apply(),bind()三种方法的区别
    jQuery回溯!!!!!!!
    java中异常类与类别
    Java 多线程(并发)
    Java中反射与常用方法
    漫谈计算机构成
    java语言特性(相比C++)
    初级排序算法学习笔记
    java中参数传递
    关于类的知识
  • 原文地址:https://www.cnblogs.com/marszhw/p/10962903.html
Copyright © 2020-2023  润新知