每天五分钟深度学习pytorch:可视化神经网络训练损失函数图像

职场   2024-12-06 23:59   浙江  

本文重点

我们希望训练的时候损失函数是降低的,一种好的办法就是通过画图的方式来将其可视化,这样效果比较好,其实这个很简单,只需要在训练过程中将训练损失和测试损失存储下来,然后使用matplotlib来绘图。

绘图核心代码

train_losses.append(train_loss/len(train_data))#将训练损失添加到训练损失列表 valid_losses.append(valid_loss/len(test_data))#将测试损失添加到测试损失列表

plt.plot(train_losses, label='train')#绘图

plt.plot(valid_losses, label='valid')

plt.xlabel('epoch')

plt.legend(loc='best')

plt.show()

实例

我们可视化一下CNN完成手写字体识别的损失图像是什么样的:

代码为:

代码分析

需要导入的包

import numpy as np

from torchvision.datasets import mnist

from torch.utils.data import DataLoader

from torch import nn

import torch

import matplotlib.pyplot as plt

from torchvision import transforms

from datetime import datetime

加载数据集

train_set =mnist.MNIST('./adata',train=True,transform=data_tf,download=True)

test_set =mnist.MNIST('./adata',train=False,transform=data_tf,download=True) train_data=DataLoader(train_set,batch_size=64,shuffle=True)

test_data =DataLoader(test_set,batch_size=128,shuffle=True)

设置手动调整学习率


def set_learning_rate(optimizer,lr):#手动调整学习率

for param_group in optimizer.param_groups:

param_group['lr']=lr


每天五分钟玩转人工智能
一个人没有梦想和神经网络有什么区别?
 最新文章