可视化学习笔记7-将训练的loss,acc结果生成npy格式,读取npy利用matplotlib.pyplot绘图。(附结果图)

npy文件介绍: NumPy 为 ndarray 对象引入了一个简单的文件格式:npy。是numpy专用的二进制文件,用于存储重建 ndarray 所需的数据、图形、dtype 和其他信息。是一种常用的保存模型文件的格式。
生成loss.npy和acc.npy代码如下:

running_loss = 0.0
loss = loss_function(logits, labels.to(device))
running_loss += loss.item()
            Train_Loss = str(running_loss)
            Loss0 = np.array(Train_Loss)
            np.save('loss/loss_epoch_{}'.format(epoch), Loss0)
acc_val = 0.0
val_accurate = acc_val / val_num
acc = str(val_accurate)
        acc0 = np.array(acc)
        np.save('acc/acc_epoch_{}'.format(epoch), acc0)

打开/使用.npy文件

y1 = []
for i in range(0,n):
    enc = np.load('acc\acc_epoch_{}.npy'.format(i)) #文件返回数组
    tempy = enc.tolist()#转列表,但是列表内的元素的str格式的,如果plt画图不能直接用,系统会默认将str进行ASCII转换的。
    tempy = float(tempy)#str转数值
    y1.append(tempy*100)#由后放入y1中

绘图

import matplotlib.pyplot as plt
import numpy as np

def plot_loss(n):
    plt.figure(figsize=(8, 7))#窗口大小可以自己设置
    y1 = []
    for i in range(0,n):
        enc = np.load('acc_v2\\acc_epoch_{}.npy'.format(i)) #文件返回数组
        tempy = enc.tolist()
        tempy = float(tempy)
        y1.append(tempy*100)
    x1 = list(range(0,len(y1)))
    plt.plot(x1, y1, '.-',label='accuracy_v2')#label对于的是legend显示的信息名
    plt.grid()#显示网格
    plt_title = 'BATCH_SIZE = 48; LEARNING_RATE:0.001'
    plt.title(plt_title)#标题名
    plt.xlabel('per 400 times')#横坐标名
    plt.ylabel('LOSS')#纵坐标名
    plt.legend()#显示曲线信息
    plt.savefig("train_loss_v3.jpg")#当前路径下保存图片名字
    plt.show()
    
if __name__ == "__main__":
    plot_loss(399)#文件数量

结果:
可视化学习笔记7-将训练的loss,acc结果生成npy格式,读取npy利用matplotlib.pyplot绘图。(附结果图)_第1张图片
可视化学习笔记7-将训练的loss,acc结果生成npy格式,读取npy利用matplotlib.pyplot绘图。(附结果图)_第2张图片
可视化学习笔记7-将训练的loss,acc结果生成npy格式,读取npy利用matplotlib.pyplot绘图。(附结果图)_第3张图片

你可能感兴趣的:(可视化学习,学习,python,开发语言)