优化器

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的改进

版权声明:本文为qq_43357874原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。