1.首先谈的第一个重要的 zero_grad() 梯度清零。

由于每次梯度计算完成后,网络中的优化器梯度不会自动清零,所以需要手动输入函数进行优化器梯度清零。例子:

for i, data in enumerate(dataLoader):# 获取图片和标签inputs, labels = datainputs, labels = Variable(inputs), Variable(labels)optimizer.zero_grad() #优化器梯度清零outputs = net(inputs)loss = criterion(outputs, labels) #计算损失函数loss.backward()  损失函数回传/参数更新optimizer.step() 优化器更新/参数更新

1

2.谈一下state_dict()  获取模型参数

里面存放一个字典,存放模型的权重、bias偏置,以字典形式返回。例子:

#导入所需要的库函数
import torch
import torch.nn as nn
import torch.optim as optim
import torchvision
import numpy as mp
import matplotlib.pyplot as plt
import torch.nn.functional as F#定义一个网络class TheModelClass(nn.Module):def __init__(self):super(TheModelClass,self).__init__()self.conv1=nn.Conv2d(3,6,5)self.pool=nn.MaxPool2d(2,2)self.conv2=nn.Conv2d(6,16,5)self.fc1=nn.Linear(16*5*5,120)self.fc2=nn.Linear(120,84)self.fc3=nn.Linear(84,10)def forward(self,x):x=self.pool(F.relu(self.conv1(x)))x=self.pool(F.relu(self.conv2(x)))x=x.view(-1,16*5*5)x=F.relu(self.fc1(x))x=F.relu(self.fc2(x))x=self.fc3(x)return x#定义主函数
def main():# 模型初始化/实例化模型model = TheModelClass()#优化器初始化optimizer=optim.SGD(model.parameters(),lr=0.001,momentum=0.9)#print model's state_dictprint('Model.state_dict:')for param_tensor in model.state_dict():#打印 key value字典print(param_tensor,'\t',model.state_dict()[param_tensor].size())#print optimizer's state_dictprint('Optimizer,s state_dict:')for var_name in optimizer.state_dict():print(var_name,'\t',optimizer.state_dict()[var_name])#运行主函数
if __name__=='__main__':main()

2

待续。。。

优化器optimizer相关推荐

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

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

  2. Pytorch优化器Optimizer

    优化器Optimizer 什么是优化器 pytorch的优化器:管理并更新模型中可学习参数的值,使得模型输出更接近真实标签 导数:函数在指定坐标轴上的变化率 方向导数:指定方向上的变化率(二元及以上函 ...

  3. mysql cbo优化器_Oracle的优化器(Optimizer) (CBO优化) 分享

    Oracle在执行一个SQL之前,首先要分析一下语句的执行计划,然后再按执行 计划去执行.分析语句的执行计划的工作是由优化器(Optimiz Oracle的优化器(Optimizer) (CBO优化) ...

  4. 【PyTorch基础教程9】优化器optimizer和训练过程

    学习总结 (1)每个优化器都是一个类,一定要进行实例化才能使用,比如: class Net(nn.Moddule):··· net = Net() optim = torch.optim.SGD(ne ...

  5. 优化器 optimizer

    优化器 optimizer optimizer 优化器,用来根据参数的梯度进行沿梯度下降方向进行调整模型参数,使得模型loss不断降低,达到全局最低,通过不断微调模型参数,使得模型从训练数据中学习进行 ...

  6. Pytorch框架之优化器 Optimizer

    Pytorch框架之优化器 Optimizer 基本用法 优化器主要是在模型训练阶段对模型可学习参数进行更新, 常用优化器有 SGD,RMSprop,Adam等 优化器初始化时传入传入模型的可学习参数 ...

  7. 一文详解Pytorch中的优化器Optimizer

    本文将结合源码与代码示例详细解析Optimizer的五大方法. 1. 前言 优化器主要用在模型训练阶段,用于更新模型中可学习的参数.torch.optim提供了多种优化器接口,比如Adam.RAdam ...

  8. 总结机器学习优化器Optimizer

    原谅小弟搬运 只为学习还是为了自己~~~ 以经典综述文献 An overview of gradient descent optimization algorithms为线索,结合一些优秀的文章,对目 ...

  9. 优化器optimizer,BGD、SGD、MBGD、NAG、AdaGrad、Adadelta、RMSProp、Adam

    优化器根据优化点不一样可分为三类: 基本的梯度下降法 包括:批量梯度下降法BGD.随机梯度下降法SGD.小批量梯度下降法MBGD(SGD) 动量优化法 包括:标准动量优化法Momentum,牛顿加速度 ...

  10. 深度学习调参:优化算法,优化器optimizer,学习率learning rate

    在优化模型的过程中,有高原.高峰.洼地,我们的目的是找到最低的那个洼地. 选择不同的学习率和优化器,可能进入不同的洼地,或者在洼地附近震荡,无法收敛. 1 优化器的选择 Adam那么棒,为什么还对SG ...

最新文章

  1. CentOS开机自动运行程序的脚本
  2. python之functools partial
  3. Java的运行机制分析!
  4. Linux系统中添加硬盘,并挂载到已有的目录,比如/home/user
  5. 事件冒泡 bubbles cancelBubble stopPropagation() stopImmediatePropagation() 区别
  6. 汇编语言(三十三)之四进制转十进制
  7. 2017.9.9 堵塞的交通 思考记录
  8. 【Kafka】kafka SSL close message 远程主机被迫关闭了一个连接
  9. Register code
  10. 二维数组七行七列C语言,C语言中级教程 再谈数组-7.ppt
  11. kotlin方法类型_Kotlin类型检查,Kotlin类型铸造
  12. android 手机邮件发不出去,Android中小弟我为什么发不了邮件-Android邮件发送详解...
  13. apache日志文件 accesslog
  14. 常用的laplace变换公式表
  15. html中qq咨询的代码,QQ样式的在线客服代码
  16. 阿里云和腾讯云全方位对比
  17. iZotope RX 7 Advanced混音插件使用教程
  18. eclipse复制行快捷键与屏幕旋转冲突的解决
  19. 自有APP上如何运行小游戏?
  20. 团支部工作计划小学体育工作总结

热门文章

  1. 基于LVS高可用架构实现Nginx集群分流
  2. 浅析YUV422模式
  3. 【观察】数据中心从制冷到“智冷”,华为践行“双碳”更进一步
  4. 抗滑桩弹性计算方法_抗滑桩类型、设计及计算,这样讲解容易多了吧!
  5. 记录配置虚拟环境pytorch2
  6. nanohttpd接收不到post参数问题
  7. centos查询 硬盘序列号查询_CentOS 查看硬件信息
  8. 基于thinkphp的wms进销存源码
  9. 基于GUI的简易图像处理系统设计与实现
  10. 无需工具修改文件创建时间