博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
优化器
阅读量:3941 次
发布时间:2019-05-24

本文共 988 字,大约阅读时间需要 3 分钟。

文章目录

1. 神门是优化器

pytorch的优化器:管理并更新模型中可学习参数的值,使得模型输出更接近真实标签

梯度下降
参考 : https://blog.csdn.net/weixin_40170902/article/details/80092628
在这里插入图片描述

在这里插入图片描述

导数:函数在指定坐标轴上的变化率

方向导数:指定方向上的变化率
梯度:一个向量,方向为方向导数取得最大值的方向

2. optimizer的属性

在这里插入图片描述

• de faul ts:优化器超参数

• s ta te:参数的缓存,如mom en tum的缓存
• pa rams_g roups:管理的参数组
• _s tep_coun t:记录更新次数,学习率调整中使用

3. optimizer的方法

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

pytorch特性:张量梯度不自动清零

• zero_grad():清空所管理参数的梯度
• step():执行一步更新
• add_param_group():添加参数组
• state_dict():获取优化器当前状态信息字典
• load_state_dict() :加载状态信息字典

4. learning rate 学习率

梯度下降: 𝒘𝒊+𝟏 = 𝒘𝒊 − 𝒈(𝒘𝒊 ) 𝒘𝒊+𝟏 = 𝒘𝒊 − LR * 𝒈(𝒘𝒊)

学习率(learning rate)控制更新的步伐
使用较小的学习率可以让模型收敛,较大会导致梯度爆炸

5. momentum动量

在这里插入图片描述

6. torch.optim.SGD

在这里插入图片描述

主要参数:

• params:管理的参数组
• lr:初始学习率
• momentum:动量系数,贝塔
• weight_decay:L2正则化系数
• nesterov:是否采用NAG

7. pytorch的十种优化器

  1. optim.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的改进
你可能感兴趣的文章
详细解释PHP中header
查看>>
php中的迭代器Iterator的具体用法
查看>>
mysql操作技巧随笔--链表删除数据
查看>>
MySql在建立索引优化时需要…
查看>>
Mysql建表和索引使用规范
查看>>
mysql 队列 实现并发读
查看>>
MYSQL千万级数据量的优化方法积累
查看>>
经典分享MySQL的limit查询优化
查看>>
各大浏览器兼容性报告
查看>>
统计每个ip的访问量--linux--acces…
查看>>
常见hash算法的原理
查看>>
localForage——轻松实现 Web&n…
查看>>
yaf使用小记
查看>>
document.domain 跨域问题
查看>>
window安装PHP的redis扩展
查看>>
给网站选择一个好的jquery库远程调…
查看>>
flash as 与js通信(转)
查看>>
Linux系统手动安装rzsz 软件包
查看>>
PHP的事务处理机制
查看>>
JS moveStart和moveEnd方法
查看>>