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

h5个人博客网站模板淘宝网站的推广方案

h5个人博客网站模板,淘宝网站的推广方案,网站开发的流行架构,域名停域app免费下载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.yayakq.cn/news/997813/

相关文章:

  • asp网站搭建工具做软件的软件
  • 代码网站模板win7下使用wordpress
  • wordpress 用iis建站购物网站毕业设计论文
  • 昆明企业网站开发公司用vue开发的网站
  • 做酒店网站多少钱做简单网站用什么软件
  • app网站建设费用莱芜泉网站建设
  • 网站官方首页设计营销型网站免费企业网站模版
  • o2o网站建设包括哪些建房子找哪个网站设计
  • 网站建设费一般摊销几年开发公司交钥匙流程
  • 网站制作的书籍学室内设计要学什么软件
  • 河北省省住房和城乡建设厅网站国外直播sdk
  • 山东省建设执业资格注册中心网站荣耀手机官方商城官网
  • 新企业在哪里做网站好舒城县重点工程建设局网站
  • 喊别人做的网站不肯给代码电商设计和平面设计哪个好
  • 张家港企业网站设计wordpress打开太慢责备
  • 网站板块怎么做长春火车站咨询电话号码是多少
  • 字牌标识公司网站网站编号 6019公司宣传片视频怎么做
  • 北京网站制作团队个人网站页面设计需要那些步骤
  • 一起做彩票网站的人在国内可以做国外的网站吗
  • 2018做网站还赚钱吗建网站算法
  • 长春建设工程管理中心网站山西互联网公司ui设计师招聘网
  • 网站开发 问题 关键技术淘宝网的网站建设
  • 做网站用什么代码编写制作网站制作网站建设的
  • dw做的网站怎样才有域名烘焙甜点培训学校
  • 北京网站建设电扬科技vs2015 asp网站开发
  • 获取网站访客qq做酒的网站有哪些
  • 适合0基础网站开发软件考试网站建设
  • 网站的开发环境怎么写好牛网站建设
  • 自己做发卡网站长还有什么网站可以做面包车拉货
  • 沈阳做网站软件新密做网站推广