pytorch基础(十五)-----------优化器optimizer

pytorch的优化器的作用:管理并更新模型中可学习参数的值, 使得模型输出更接近真实标签(更新采用是梯度下降)

一、optimizer的基本参数

defaults:优化器超参数
state:参数的缓存,如momentum的缓存
param_groups:管理的参数组
_step_count:记录更新次数,学习率调整中使用(比如要在第n次迭代后降低学习率)

二、optimizer的基本使用方法

zero_grad():清空所有参数的梯度,因为张量不会自动清零会自动累加,在梯度求导之前需要进行梯度清零
step():进行一步更新
add_param_groups():添加一组参数
state_dict():获取优化器当前状态信息字典
load_state_dict():加载状态信息字典

三、lr学习率

学习率的作用就是控制更新的步伐,防止loss激增导致梯度爆炸,设置一个相对合适的学习率有利于模型的快速收敛
公式: w = w i − l r ∗ 梯 度 w = w_i - lr*梯度 w=wilr

四、动量

momentum(动量):结合当前梯度与上一次更新信息,用于当前更新,通俗的讲就是参考上一次的更新方向,利用相对较少迭代次数完成收敛
公式: 更 新 量 = m ∗ 上 一 次 的 更 新 量 + 梯 度 更新量 = m*上一次的更新量 + 梯度 =m+
w = w i − l r ∗ 更 新 量 w=w_i - lr*更新量 w=wilr

五、optim.SGD

optim.SGD是pytorch中最常用的优化器
主要参数:
params:管理的参数组
lr:初始学习率
momentum:动量系数
weight_decay:L2正则化系数
nesterov:是否采用NAG,布尔变量

六、常见的优化器

1、optim.SGD:随机梯度下降法,大部分都会使用SGD
2、optim.Adagrad:自适应学习率梯度下降法
3、optim.RMSprop:Adagrad的改进
4、optim.Adadelta:Adagrad的改进
5、optim.Adam:RMSprop结合Momentum
6、optim.Adamax:Adam增加学习率上限
7、optim.SparseAdam:稀疏版的Adam
8、optim.ASGD:随机平均梯度下降
9、optim.Rprop:弹性反向传播,通常是在所有样本一起计算梯度时使用,但是现在一般是分批量计算
10、optim.LBFGS:BFGS的改进

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值