Optim是一个实现各种优化算法的包。大多数常用的方法已经得到支持,接口也足够通用,因此将来也可以轻松集成更复杂的方法。

常用套路:

1. 计算loss   result_loss =nn.CrossEntropyLoss(output,targets)

2. 清空梯度  optim.zero_grad()

3. 反传传播  result_loss.backward()

4. 更新参数 optim.step()

优化器使用的简单案例:

import torch
import torchvision
from torch import nn
from torch.nn import Sequential, Conv2d, MaxPool2d, Flatten, Linear
from torch.utils.data import DataLoaderclass Mymodule(nn.Module):def __init__(self):super(Mymodule, self).__init__()self.model = 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,input):output = self.model(input)return outputdataset = torchvision.datasets.CIFAR10("../fl/data",train=False,transform=torchvision.transforms.ToTensor(),download=True)
dataloader = DataLoader(dataset,batch_size=1)mymodule = Mymodule()#交叉熵
loss = nn.CrossEntropyLoss()#优化器,第一个参数是模型参数,第二个是学习率,一般为0.01
optim = torch.optim.SGD(mymodule.parameters(),lr=0.01)for epoch in range(20):running_loss = 0.0for data in dataloader:imgs,targets = dataoutput = mymodule(imgs)result_loss = loss(output,targets)#先把每个梯度调为零optim.zero_grad()#反向传播,会得到一个梯度grad,可以利用它进行优化result_loss.backward()#对权重进行更新optim.step()running_loss = running_loss + result_loss#每一轮的损失之和print(running_loss)

结果:

(联邦学习笔记,资料来源于b站小土堆)

优化器TORCH.OPTIM相关推荐

  1. PyTorch的损失函数和优化器

    文章目录 PyTorch的损失函数和优化器 损失函数 优化器 总结 PyTorch的损失函数和优化器 损失函数 一般来说,PyTorch的损失函数有两种形式:函数形式和模块形式.前者调用的是torch ...

  2. pytorch基础知识整理(五) 优化器

    深度学习网络必须通过优化器进行训练.在pytorch中相关代码位于torch.optim模块中. 1, 常规用法 optimizer = torch.optim.Adam(model.paramete ...

  3. PyTorch学习笔记2:nn.Module、优化器、模型的保存和加载、TensorBoard

    文章目录 一.nn.Module 1.1 nn.Module的调用 1.2 线性回归的实现 二.损失函数 三.优化器 3.1.1 SGD优化器 3.1.2 Adagrad优化器 3.2 分层学习率 3 ...

  4. pytorch 优化器

    深度学习五个步骤:数据 --> 模型 --> 损失函数 --> 优化器 --> 迭代训练,通过前向传播,得到模型的输出和真实标签之间的差异,也就是损失函数,有了损失函数之后,模 ...

  5. PyTorch基础-Adam优化器使用-06

    当不知道使用什么优化器的时候可以使用adam优化器 代码 import numpy as np import torch from torch import nn,optim from torch.a ...

  6. pytorch adagrad_【学习笔记】Pytorch深度学习—优化器(二)

    点击文末 阅读原文,体验感更好哦! 前面学习过了Pytorch中优化器optimizer的基本属性和方法,优化器optimizer的主要功能是 "管理模型中的可学习参数,并利用参数的梯度gr ...

  7. Pyotrch —— 优化器Optimizer(一)

    目录 1.什么是优化器 2.optimizer的属性 3.optimizer的方法 4.代码分析 5.优化器基本方法的使用 1.什么是优化器 Pytorch优化器:管理并更新模型中可学习参数的值,使得 ...

  8. PyTorch(13)---优化器_随机梯度下降法

    优化器:随机梯度下降法 反向传播-梯度下降 import torch import torchvision from torch import nn from torch.nn import Conv ...

  9. Pytorch:优化器、损失函数与深度神经网络框架

    Pytorch: 优化器.损失函数与深度神经网络框架 Copyright: Jingmin Wei, Pattern Recognition and Intelligent System, Schoo ...

  10. pytorch学习十 ---- 优化器

    1.什么是优化器? 首先我们回忆一下机器学习的五大模块:数据.模型.损失函数.优化器.迭代训练 在损失函数中我们会得到一个loss值,即真实标签与预测标签的差异值,对于loss我们通常会采用pytor ...

最新文章

  1. JIRA与Confluence的安装与集成(4)
  2. [转]MongoDB基本使用
  3. 深度学习 CNN卷积神经网络 LeNet-5详解
  4. 线程池底层工作原理?
  5. node内存配置(--max-old-space-size)
  6. C++学习——C++中的四种类型转换
  7. 马云现身敦煌种梭梭树:蚂蚁森林即将突破1亿棵树
  8. 走不远的共享滑板车!
  9. python构建知识库_Python学习知识库
  10. 2019最新《网易云课堂C++开发工程师案例-网吧收银系统(MFC+ADO)》
  11. 基于ARM+FPGA低成本高实时Ethercat运动控制器解决方案
  12. 【视频】离职创业感悟
  13. 在线matlab,web版,还是挺好用的
  14. 3. pandas基础
  15. 大才非学不成,大志非学不就——周旭龙
  16. Python+Django毕业设计中小型企业工作日志管理系统APP(程序+LW+部署)
  17. python的seed和tensorflow的seed
  18. YOLO UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing a
  19. 前端PC端微信扫码登录
  20. php安装教程_php教程

热门文章

  1. android电影播放器,万能电影播放器2018最新版-万能电影播放器v1.0 安卓版-腾牛安卓网...
  2. 【数据科学竞赛入门】从往届腾讯广告大赛看如何入坑数据挖掘竞赛
  3. NOI-Linux使用技巧
  4. Matlab中semilogy函数使用
  5. 《赖氏经典英语语法》第四集
  6. 菲律宾 软件测试,一个中国学生,2个月的菲律宾游学失败经历自白
  7. easyui radiobutton
  8. 玩转数据可视化之R语言ggplot2:(一)ggplot2实现箱线图、小提琴图、直方图等图形(快速入门)
  9. u盘为什么要安全弹出?丢失的数据怎么恢复?
  10. 视频剪辑入门技能快速分享