咨询热线

400-123-4567

咨询热线

400-123-4567
地址:13800000000
手机:广东省广州市天河区88号
邮箱:admin@youweb.com

顺达新闻资讯

当前位置: 首页 > 顺达新闻资讯

pytorch学习笔记:优化器

发布时间:2024-06-10 05:57:14 点击量:

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

管理:更新哪些参数

更新:根据一定的优化策略更新参数的值

为了避免一些意外情况的发生,每隔一定的epoch就保存一次网络训练的状态信息,从而可以在意外中断后继续训练。

2.1、单步调试代码观察优化器建立过程

  • 首先运行到断点出step into

  • 2.进行到SGD初始化函数

  • 3.运行到64行step into进入父类optimizer继续初始化

?添加参数后结果如下

网络的构建过程

  • 4.step out跳出并完成优化器的创建

  • 5.清空梯度
  • 6.更新参数

  • step():一步更新
 

  • ?zero_gard():清空梯度
 

  • add_param_group():添加参数组

 
  • ?state_dict():获取优化器当前的状态字典

 
  • ?load_state_dict()加载保存的状态字典

 
 

假设损失函数如下图所示为y=4*w^2(w为网络的权重)

权重的更新公式为

当学习率为0.5时,由于更新步幅太大造成损失的爆炸

修改学习率为0.2后,损失函数可以稳步的下降,因此学习率的选择非常重要。

然而面对不同的损失函数和网络,如何选择学习率是一个问题,一般的策略为采取较小的学习率,用时间来换取精度

从上图可以看出,学习率为0.01时,虽然损失下降的比较慢,但最终也能达到不错的效果。

 

2.4、动量

指数加权平均

各个时刻的权重如下图所示,离当前时刻越远,权重越小,呈指数衰减

参数beta对权重的影响下图所示,可以看出beta的值越小,对过去数据的记忆时间越短

pytorch中的带动量SGD更新公式

?

3.1、SGD

?3.2、其他优化器

?

?

?

本文为深度之眼Pytorch课程的学习笔记,仅供自己学习使用,如有问题欢迎讨论!关于课程可以扫描下图二维码

地址:广东省广州市天河区88号电话:400-123-4567
版权所有:Copyright © 2012-2018 顺达-顺达平台-顺达中国加盟站   
ICP备案编号:粤ICP********

平台注册入口