当前位置: 首页> 游戏> 评测 > 神经网络——优化器

神经网络——优化器

时间:2025/7/11 3:02:01来源:https://blog.csdn.net/qq_37441377/article/details/141633933 浏览次数:0次

1.优化器介绍:

优化器集中在torch.optim中。

  • Constructing it

optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.9)
optimizer = optim.Adam([var1, var2], lr=0.0001)
  • Taking an optimization step
for input, target in dataset:optimizer.zero_grad()output = model(input)loss = loss_fn(output, target)loss.backward()optimizer.step()

2.代码实战:

import torch
import torchvision
from torch import nn
from torch.nn import Sequential, Conv2d, MaxPool2d, Flatten, Linear
from torch.utils.data import DataLoaderdataset=torchvision.datasets.CIFAR10("data",train=False,transform=torchvision.transforms.ToTensor(),download=True)#每个批次中加载的数据项数量
dataloader=DataLoader(dataset,batch_size=1)class Tudui(nn.Module):def __init__(self):super(Tudui, self).__init__()self.model1=Sequential(Conv2d(3,32,5,padding=2),MaxPool2d(2),Conv2d(32,32,5,padding=2),MaxPool2d(2),Conv2d(32,64,5,padding=2),MaxPool2d(2),Flatten(),Linear(1024,64),Linear(64,10))def forward(self, x):x=self.model1(x)return xloss=nn.CrossEntropyLoss()
tudui=Tudui()optim=torch.optim.SGD(tudui.parameters(),lr=0.01)for epoch in range(20):running_loss=0.0for data in dataloader:imgs,targets = dataoutputs =tudui(imgs)result_loss=loss(outputs,targets)#清零optim.zero_grad()result_loss.backward()#调优optim.step()running_loss=running_loss+result_lossprint(running_loss)

在这里插入图片描述
后面loss又升高,为反向优化

3.总结:

优化器的基本使用

  • 如果要知道各个优化器的详细用法
  • 需要对其有一定了解
  • 注意要多训练几轮
关键字:神经网络——优化器

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: