当前位置: 首页 > news >正文

重庆网站建设合肥公司怎么在网上推广产品

重庆网站建设合肥公司,怎么在网上推广产品,福州学做网站,在网站上做宣传pytorch技巧总结1:学习率调整方法 前言 ​ 这个系列,我会把一些我觉得有用、有趣的关于pytorch的小技巧进行总结,希望可以帮助到有需要的朋友。 免责申明 ​ 本人水平有限,若有误写、漏写,请大家温柔的批评指正。 目录…

pytorch技巧总结1:学习率调整方法

前言

​ 这个系列,我会把一些我觉得有用、有趣的关于pytorch的小技巧进行总结,希望可以帮助到有需要的朋友。

免责申明

​ 本人水平有限,若有误写、漏写,请大家温柔的批评指正。

目录结构

文章目录

    • pytorch技巧总结1:学习率调整方法
      • 1. 用处
      • 2. 通过epoch次数和优化器来调节
        • 2.1 思路来源
        • 2.2 调整案例
      • 3. pytorch提供的方法
        • 3.1 方法介绍
        • 3.2 调整案例
      • 4. 保存参数后再次训练
        • 4.1 思路
        • 4.2 调整案例
      • 5. 总结

1. 用处

​ 学习率的调整在深度学习中是很重要的一块。而身为一个初学者,肯定会进行一些经典架构的代码复现,因此必定会涉及到如何实现论文中所说的“学习率调整”(一般通常是训练到一定程度,学习率除以10)

​ 因此,本篇文章就是简单的总结一些我目前见过的学习率调整方法。

2. 通过epoch次数和优化器来调节

2.1 思路来源

​ 首先介绍的第一个方法,是比较常用的方法,即通过epoch的次数和优化器来调节。

​ 主要流程为:

1. 开始训练
2. 当训练到指定epoch时,调整学习率
3. 继续训练

​ 其中的优化器指的就是我们所认知的“Adam、SGD”等优化器。

​ 这里主要利用的是这些优化器有一个参数名为param_groups,打印该参数值如下:

print(optim_G.param_groups)

​ 打印的值如下:

[{'params': [Parameter containing:......(这些是具体的参数值)], 'lr': 0.002, 'betas': (0.5, 0.999), 'eps': 1e-08, 'weight_decay': 0, 'amsgrad': False, 'maximize': False, 'foreach': None, 'capturable': False, 'differentiable': False, 'fused': False}]

​ 可以从上面看出,这是一个列表,里面包含了一个字典,这个字典里面有我们需要的学习率参数,即上面的lr

​ 因此,我们需要获取它,然后改变它,即可完成学习率的调整。

2.2 调整案例

​ 根据上面的想法,我下面给出调整学习率的一个模板,大家使用的时候按照这个模板即可:

......
# 开始训练
for e in range(epoch):# 50 这些数字根据自己的需求修改即可if e+1 == 50:  # 如果训练到第50个批次,那么可以调整学习率# 调整学习率# 首先,获取列表中第一个字典,然后获取学习率参数# 最后,将这个学习率除以10(或者改为你需要的学习率即可)optim.param_groups[0]['lr'] /= 10 .....  # 具体的训练代码

3. pytorch提供的方法

​ 上面的思路是我们根据优化器参数来实现的,而pytroch官方肯定是知道学习率调整的重要性的,因此他们也提供了方便快捷实现学习率调整的方法。

3.1 方法介绍

​ 方法名字和位置:

torch.optim.lr_scheduler.MultiStepLR

​ 该方法的重要参数介绍:

参数名字意义
optimizer优化器对象
milestones一个数组,比如[50,80,100],表示第50、80、100批次的时候会自动调整学习率
gamma指定倍率,比如0.1,表示后面调整学习率的时候自动乘以0.1(即除以10)

​ 其实,这个方法的调整思路和我们上面第一个方法是一样的,不过,这里实现更加方便。

3.2 调整案例

​ 同样的,下面我给出一个该方法的使用模板,大家根据需求修改即可:

....
optim = .... # 定义优化器‘
# 创建学习率调整器
scheduler = torch.optim.lr_scheduler.MultiStepLR(optim,milestones=[50,75,100],gamma=0.1)
# 开始训练
for e in range(epoch):.... # 正常的训练过程# 只是需要记住的是,一般在epoch训练完成后,在最后加上学习率更新的代码scheduler.step()....

值得一提的是,pytorch提供的调整学习函数不只MultiStepLR,还有一些其它的,不过用法都类似,如果大家有需求,可以看看官方源码的介绍你即可

4. 保存参数后再次训练

4.1 思路

​ 这个方法不是很实用,这是我在最开始学习的的时候,对于pytorch的方法不熟悉的时候使用的思路。

​ 即,先指定训练一定的epoch,然后保存模型参数,接着修改模型学习率参数,然后加载刚刚训练完的参数,继续训练。

​ 这个方法的好处就是:当你在训练过程中,发现训练的不好或者哪里有问题,可以直接停止模型的训练,因为你上次训练的参数已经保存了,所以可以大胆的停止训练。

4.2 调整案例

​ 同样给出一个简单的模板:

.....
lr = 0.01
.....
for e in range(epoch):.... # 正常训练
# 训练完毕后,保存模型参数
torch.save(model.state_dict(),path)# 下次训练
# 1. 修改学习率
lr = 0.001
# 2. 加载上次的模型参数
model.load_state_dict(torch.load(path))
# 3. 接着训练
......

5. 总结

​ 上面三种方法,常用的是第二种。当然,偶尔也是用用第一种和第三种。

​ 如果后面我遇到新的调整学习率方法,会及时更新该篇文章的。

http://www.mmbaike.com/news/55065.html

相关文章:

  • 嘉定企业网站开发建设购买友情链接
  • 写html代码用什么软件西安seo公司
  • 网站开发(定制)合同 模板电商代运营公司十强
  • 网站查询 工信部搜索引擎的工作原理是什么?
  • 新乐市做网站百度网盘资源免费搜索引擎入口
  • 怎么找到网站的空间服务商软文营销文章300字
  • 九江专业网站建设定制google play store
  • 网络营销的实现方式有哪些?北京网站优化校学费
  • 做seo的网站推广适合推广的app有哪些
  • 北京专业网站制作百度云盘资源
  • 苏州专业网站建设设计公司软件推广方案经典范文
  • 青岛知名设计公司上海抖音seo公司
  • 做网站做地区好还是全国的好百度信息流是什么
  • eclipce做网站商城小程序开发哪家好
  • 免费网站建设入门搜狗搜索网
  • 做网站需要花钱吗朋友圈广告推广
  • 宣传页在线设计软件合肥网站优化推广方案
  • 如何用文件传输协议登陆网站搜索引擎都有哪些
  • 建一网站要多少钱谷歌浏览器官网下载手机版
  • 怎么做网站才能被收购搜索网页内容
  • 1个空间做两个网站网络游戏推广公司
  • 中国建设银行手机银行网站东莞整站优化推广公司找火速
  • 华为云云速建站教程优化工具箱
  • 个人做网站可以盈利么xp优化大师
  • 塑胶卡板东莞网站建设支持网络营销的特点有
  • 网站建设英文怎么说中国十大教育培训机构有哪些
  • 乔拓云微信小程序中小企业网站优化
  • 国人在线做网站怎么样重庆seo软件
  • 威县做网站哪里便宜win11优化大师
  • 网站论坛怎么做个人网站模板免费下载