优化器optimizer
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相关推荐
- Pyotrch —— 优化器Optimizer(一)
目录 1.什么是优化器 2.optimizer的属性 3.optimizer的方法 4.代码分析 5.优化器基本方法的使用 1.什么是优化器 Pytorch优化器:管理并更新模型中可学习参数的值,使得 ...
- Pytorch优化器Optimizer
优化器Optimizer 什么是优化器 pytorch的优化器:管理并更新模型中可学习参数的值,使得模型输出更接近真实标签 导数:函数在指定坐标轴上的变化率 方向导数:指定方向上的变化率(二元及以上函 ...
- mysql cbo优化器_Oracle的优化器(Optimizer) (CBO优化) 分享
Oracle在执行一个SQL之前,首先要分析一下语句的执行计划,然后再按执行 计划去执行.分析语句的执行计划的工作是由优化器(Optimiz Oracle的优化器(Optimizer) (CBO优化) ...
- 【PyTorch基础教程9】优化器optimizer和训练过程
学习总结 (1)每个优化器都是一个类,一定要进行实例化才能使用,比如: class Net(nn.Moddule):··· net = Net() optim = torch.optim.SGD(ne ...
- 优化器 optimizer
优化器 optimizer optimizer 优化器,用来根据参数的梯度进行沿梯度下降方向进行调整模型参数,使得模型loss不断降低,达到全局最低,通过不断微调模型参数,使得模型从训练数据中学习进行 ...
- Pytorch框架之优化器 Optimizer
Pytorch框架之优化器 Optimizer 基本用法 优化器主要是在模型训练阶段对模型可学习参数进行更新, 常用优化器有 SGD,RMSprop,Adam等 优化器初始化时传入传入模型的可学习参数 ...
- 一文详解Pytorch中的优化器Optimizer
本文将结合源码与代码示例详细解析Optimizer的五大方法. 1. 前言 优化器主要用在模型训练阶段,用于更新模型中可学习的参数.torch.optim提供了多种优化器接口,比如Adam.RAdam ...
- 总结机器学习优化器Optimizer
原谅小弟搬运 只为学习还是为了自己~~~ 以经典综述文献 An overview of gradient descent optimization algorithms为线索,结合一些优秀的文章,对目 ...
- 优化器optimizer,BGD、SGD、MBGD、NAG、AdaGrad、Adadelta、RMSProp、Adam
优化器根据优化点不一样可分为三类: 基本的梯度下降法 包括:批量梯度下降法BGD.随机梯度下降法SGD.小批量梯度下降法MBGD(SGD) 动量优化法 包括:标准动量优化法Momentum,牛顿加速度 ...
- 深度学习调参:优化算法,优化器optimizer,学习率learning rate
在优化模型的过程中,有高原.高峰.洼地,我们的目的是找到最低的那个洼地. 选择不同的学习率和优化器,可能进入不同的洼地,或者在洼地附近震荡,无法收敛. 1 优化器的选择 Adam那么棒,为什么还对SG ...
最新文章
- CentOS开机自动运行程序的脚本
- python之functools partial
- Java的运行机制分析!
- Linux系统中添加硬盘,并挂载到已有的目录,比如/home/user
- 事件冒泡 bubbles cancelBubble stopPropagation() stopImmediatePropagation() 区别
- 汇编语言(三十三)之四进制转十进制
- 2017.9.9 堵塞的交通 思考记录
- 【Kafka】kafka SSL close message 远程主机被迫关闭了一个连接
- Register code
- 二维数组七行七列C语言,C语言中级教程 再谈数组-7.ppt
- kotlin方法类型_Kotlin类型检查,Kotlin类型铸造
- android 手机邮件发不出去,Android中小弟我为什么发不了邮件-Android邮件发送详解...
- apache日志文件 accesslog
- 常用的laplace变换公式表
- html中qq咨询的代码,QQ样式的在线客服代码
- 阿里云和腾讯云全方位对比
- iZotope RX 7 Advanced混音插件使用教程
- eclipse复制行快捷键与屏幕旋转冲突的解决
- 自有APP上如何运行小游戏?
- 团支部工作计划小学体育工作总结