下载Tensorboard数据,单独使用matplotlib模块,在同一副图中画出多条loss或acc曲线

本文参考如何使用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()

画出来的有些丑,可以自己美化
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_40076022/article/details/108066890