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