zoukankan      html  css  js  c++  java
  • 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()
    

      

    
    
  • 相关阅读:
    openlayers跨域设置后出现http status 500错误
    myeclipse 2014 闪退问题解决
    html跨域获取数据
    centos的nginx支持ssl
    Hadoop学习笔记---HDFS
    Nginx Web服务器配置
    用ReentrantLock和Condition实现线程间通信
    Android绘图机制和处理技巧
    自定义ViewPagerIndicator-视图指示器
    Docker学习笔记
  • 原文地址:https://www.cnblogs.com/marszhw/p/10962903.html
Copyright © 2011-2022 走看看