本文参考如何使用Tensorboard的数据,自己使用plot()函数,在同一副图中画出多条loss曲线原文代码没有将读取后的数据转为float类型
深度学习训练使用Tensorboard时acc,val_acc,loss,val_loss没有绘制在一张图上,我们可以下载Tensorboard数据,单独使用matplotlib模块绘画。
具体方法
一、启动Tensorboard,进入界面
logs是你的路径
tensorboard --logdir logs
启动成功后复制路径到你的浏览器打开Tensorboard界面
二、下载Tensorboard数据并保存
1.选中左上角的 Show data download links
2.选中右下角的下载文件的csv格式,如果下载后缀是.txt,更改为.csv
下载成功后的四个数据
三、数据文件预处理
删除.csv文件最上面一行的Wall time,Step,Value
四、编写plot()函数绘画程序
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 = []
#读取csv文件中2,3列的数据,且转化为float类型
for row in plots:
y.append(float(row[2]))
x.append(float(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("run_.-tag-loss.csv")
plt.plot(x2, y2, color='red', label='loss')
x,y=readcsv("run_.-tag-val_loss.csv")
plt.plot(x, y, 'g',label='val_loss')
x1,y1=readcsv("run_.-tag-val_acc.csv")
plt.plot(x1, y1, color='black',label='val_acc')
x4,y4=readcsv("run_.-tag-acc.csv")
plt.plot(x4, y4, color='blue',label='acc')
plt.xticks(fontsize=16)
plt.yticks(fontsize=16)
#ylim和xlim的最大最小值根据csv文件的极大极小值决定
plt.ylim(0,2)
plt.xlim(0, 50)
plt.xlabel('Steps',fontsize=20)
plt.ylabel('Score',fontsize=20)
plt.legend(fontsize=16)
plt.show()
画出来的有些丑,可以自己美化