本文主要是介绍Pytorch打怪路(一)pytorch进行CIFAR-10分类(3)定义损失函数和优化器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
pytorch进行CIFAR-10分类(3)定义损失函数和优化器
我本打算把这一步的内容也归并到第二步定义网络模型中去,因为我觉得它们其实可以宏观上看成一个大部分,
但是既然官方教程中分成了5步,那我也就依照这个来,免得各位看官被我给搞昏了。
Pytorch打怪路(一)pytorch进行CIFAR-10分类(1)CIFAR-10数据加载和处理
Pytorch打怪路(一)pytorch进行CIFAR-10分类(2)定义卷积神经网络
Pytorch打怪路(一)pytorch进行CIFAR-10分类(3)定义损失函数和优化器(本文)
Pytorch打怪路(一)pytorch进行CIFAR-10分类(4)训练
Pytorch打怪路(一)pytorch进行CIFAR-10分类(5)测试
1.直接上代码
import torch.optim as optim #导入torch.potim模块criterion = nn.CrossEntropyLoss() #同样是用到了神经网络工具箱 nn 中的交叉熵损失函数
optimizer = optim.SGD(net.parameters(), lr=0.001, momentum=0.9) #optim模块中的SGD梯度优化方式---随机梯度下降
2.涉及知识点
①优化器
pytorch将深度学习中常用的优化方法全部封装在torch.optim之中,所有的优化方法都是继承基类optim.Optimizier
图中提到了如果想要把模型搬到GPU上跑,就要在定义优化器之前就完成.cuda( )这一步
2.损失函数
损失函数是封装在神经网络工具箱nn中的,包含很多损失函数,如图所示;
此例中用到的是交叉熵损失,criterion = nn.CrossEntropyLoss() 详情如下:
基本上这一步没什么好说的,就是在众多的优化器方法和损失函数中选择就ok,具体选什么就由自己情况定
这篇关于Pytorch打怪路(一)pytorch进行CIFAR-10分类(3)定义损失函数和优化器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!