如何使用Tensorboard的數據,自己使用plot()函數,在同一副圖中畫出多條loss曲線

最近在寫論文時,需要在一張圖中,同時繪製出多個模型的loss變化曲線,之前雖然在訓練模型時,也會使用Tensorboard來觀察loss曲線的變化,但是只限於觀看,並沒有對立裏面的數據進行提取和分析。後查找資料,成功解決問題,現將教程分享如下:

一、下載Tensorboard中的loss曲線的數據

1.選中左上角的 Show data download links

2.選中右下角的下載文件的格式,在這裏,我選擇的是csv格式,但實際數據下載下來的文件格式是.txt

二、修改下載後的文件內容及格式

選在csv文件格式下載後的文件,實際是.txt的格式,並且最上面一行是 Wall time,Step,Value

1.我們需要將最上面的一行刪除

2.將文件的後綴名直接改成 .csv,我們就得到了Tensorboard的csv數據格式

三、使用Pycharm 進行數據處理

import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
from matplotlib.font_manager import FontProperties
import csv

'''讀取csv文件'''
def readcsv(files):
    csvfile = open(files, 'r')
    plots = csv.reader(csvfile, delimiter=',')
    x = []
    y = []
    for row in plots:
        y.append((row[2])) 
        x.append((row[1]))
    return x ,y


mpl.rcParams['font.family'] = 'sans-serif'
mpl.rcParams['font.sans-serif'] = 'NSimSun,Times New Roman'


plt.figure()
x2,y2=readcsv("scalars3.csv")
plt.plot(x2, y2, color='red', label='Default')
#plt.plot(x2, y2, '.', color='red')

x,y=readcsv("scalars.csv")
plt.plot(x, y, 'g',label='Without BN')

x1,y1=readcsv("scalars2.csv")
plt.plot(x1, y1, color='black',label='Without DW and PW')

x4,y4=readcsv("scalars4.csv")
plt.plot(x4, y4, color='blue',label='Without Residual learning')

plt.xticks(fontsize=16)
plt.yticks(fontsize=16)

plt.ylim(0, 16)
plt.xlim(0, 104800)
plt.xlabel('Steps',fontsize=20)
plt.ylabel('Score',fontsize=20)
plt.legend(fontsize=16)
plt.show()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章