我是靠谱客的博主 殷勤咖啡,最近开发中收集的这篇文章主要介绍在pycharm中用曲线显示Loss的变化,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

        在卷积神经网络中,有时候为了更直观的看出损失函数(Loss Function)的变化,需要用曲线的形式来展现。如何在一张图中将train和test的Loss变化全部显示出来?

        首先,先导入pyplot绘图库:

import matplotlib.pyplot as plt

        然后,定义两个全局的列表变量,用于之后存储train和test的Loss值:

arry_train = []
arry_test = []

        再编写绘图的函数,这里的batch_size和epoch根据自己的代码进行修改: 

def plot_loss(arry_train,arry_test):
	line1, = plt.plot(range(0,len(arry_train)),arry_train,'r.-')
	line2, = plt.plot(range(0,len(arry_test)),arry_test,'b.-')
	plt_title = 'BATCH_SIZE = 256;EPOCH = 20'
	plt.title(plt_title)
	plt.legend(handles=[line1, line2], labels=["train_loss", "test_loss"], loc="upper right", fontsize=7)
	plt.ylabel('LOSS')
	plt.show()

        编写完功能函数后,可以在train函数和test函数中用append()方法向两个列表中添加损失:

def train(dataloader, model, loss_func, optimizer, epoch):

	...
	arry_train.append(loss)

def test(dataloader, model, loss_fn):
	
    ...
	arry_test.append(test_loss)

        最后在main函数总调用该功能函数:

if __name__ == '__main__':
	for epoch in range(start_epoch, start_epoch + epoches):
		train(train_dataloader, model, loss_func, optimizer, epoch)
		test(test_dataloader, model, loss_func)

	# Save models
	torch.save(model.state_dict(), 'model.pth')
	print('Saved PyTorch LeNet5 State to model.pth')

	plot_loss(arry_train, arry_test)

        运行后,就会在同一张图中看到不同Loss的变化:

 

最后

以上就是殷勤咖啡为你收集整理的在pycharm中用曲线显示Loss的变化的全部内容,希望文章能够帮你解决在pycharm中用曲线显示Loss的变化所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部