pytorch中调整学习率的lr_scheduler机制

        </h1><div class="clear"></div><div class="postBody">

有的时候需要我们通过一定机制来调整学习率,这个时候可以借助于torch.optim.lr_scheduler类来进行调整;一般地有下面两种调整策略:(通过两个例子来展示一下)

两种机制:LambdaLR机制和StepLR机制;

(1)LambdaLR机制:

optimizer_G = torch.optim.Adam([{'params' : optimizer_G.parameters() , 'initial_lr' : train_opt.lr}] , lr = train_opt.lr , betas = (train_opt.betal , 0.999))

lambda_G = lambda epoch : 0.5 ** (epoch // 30)

schduler_G = torch.optim.lr_scheduler.LambdaLR(optimizer_G.parameters() , lambda_G , last_epoch = 29);

scheduler.step()

lr = schduler.get_lr()[0];  //这里记得加一个[0]的索引!

for param_group in optimizer_G.param_groups():

  param_group['lr'] = lr

解释:last_epoch是开始的前一个epoch的索引值,这里为29表示从epoch = 30开始(其中scheduler类中的epoch从last_epoch + 1开始,每次step操作epoch加1),学习率调整为lr * (0.5 ** (epoch // 30));另外注意的是:定义optimizer_G类时,需要写成上述那种形式,不要写成以前常见的“optimizer_G = torch.optim.Adam(params = optimizer_G.parameters()...)”,要像这里一样写成字典形式;否则lr_scheduler类会报“没有initial_lr的错误”

(2)StepLR机制:

schduler_G = torch.optim.lr_scheduler.StepLR(optimizer_G.parameters() , step_size = 30 , gamma = 0.1 , last_epoch = 29)

其他的和上面类似,这里的调整策略如下:

分类: pytorch
<div id="blog_post_info">
好文要顶 关注我 收藏该文

outthinker
关注 - 9
粉丝 - 115

+加关注
0
0
<div class="clear"></div>
<div id="post_next_prev"><a href="https://www.cnblogs.com/zf-blog/p/11242712.html" class="p_n_p_prefix">« </a> 上一篇:    <a href="https://www.cnblogs.com/zf-blog/p/11242712.html" title="发布于 2019-07-25 10:37">pix2pix&amp;Cycle GAN&amp;pix2pix HD</a>
<br>
<a href="https://www.cnblogs.com/zf-blog/p/11360557.html" class="p_n_p_prefix">» </a> 下一篇:    <a href="https://www.cnblogs.com/zf-blog/p/11360557.html" title="发布于 2019-08-15 21:06">pytorch 中Dataloader中的collate_fn参数</a>
posted @ 2019-07-29 11:24  outthinker  阅读(2121)  评论(0)  编辑 收藏

pytorch中调整学习率的lr_scheduler机制相关推荐

  1. pytorch中调整学习率: torch.optim.lr_scheduler

    文章翻译自:https://pytorch.org/docs/stable/optim.html torch.optim.lr_scheduler 中提供了基于多种epoch数目调整学习率的方法. t ...

  2. Pytorch中的学习率调整lr_scheduler,ReduceLROnPlateau

    Pytorch中的学习率调整:lr_scheduler,ReduceLROnPlateau torch.optim.lr_scheduler:该方法中提供了多种基于epoch训练次数进行学习率调整的方 ...

  3. Pytorch中的学习率调整方法

    在梯度下降更新参数的时,我们往往需要定义一个学习率来控制参数更新的步幅大小,常用的学习率有0.01.0.001以及0.0001等,学习率越大则参数更新越大.一般来说,我们希望在训练初期学习率大一些,使 ...

  4. pytorch 动态调整学习率,学习率自动下降,根据loss下降

    0 为什么引入学习率衰减? 我们都知道几乎所有的神经网络采取的是梯度下降法来对模型进行最优化,其中标准的权重更新公式: W+=α∗gradient W+=\alpha * \text { gradie ...

  5. pytorch中的学习率与优化器【lr_scheduler与optimizer】

    pytorch中优化器的使用流程大致为: for input, target in dataset:optimizer.zero_grad()output = model(input)loss = l ...

  6. caffe中的学习率的衰减机制

    根据  caffe/src/caffe/proto/caffe.proto 里面的文件,可以看到它有以下几种学习率的衰减速机制: 1. fixed:   在训练过程中,学习率不变: 2. step: ...

  7. pytorch 动态调整学习率 重点

    深度炼丹如同炖排骨一般,需要先大火全局加热,紧接着中火炖出营养,最后转小火收汁. 本文给出炼丹中的 "火候控制器"-- 学习率的几种调节方法,框架基于 pytorch 1. 自定义 ...

  8. Lesson 15.2 学习率调度在PyTorch中的实现方法

    Lesson 15.2 学习率调度在PyTorch中的实现方法   学习率调度作为模型优化的重要方法,也集成在了PyTorch的optim模块中.我们可以通过下述代码将学习率调度模块进行导入. fro ...

  9. asp文本框输入控制是5的倍数_DL知识拾贝(Pytorch)(五):如何调整学习率

    知识导图 学习率对于深度学习是一个重要的超参数,它控制着基于损失梯度调整神经网络权值的速度,大多数优化算法(SGD.RMSprop.Adam)对其都有所涉及.学习率过下,收敛的太慢,网络学习的也太慢: ...

最新文章

  1. redis3.2.3安装部署实战
  2. jquery之仿京东菜单
  3. v-charts修改点击图例事件,legendselectchanged
  4. 如何在windows下使用linux命令
  5. 锻炼产品架构思维的4个维度
  6. 函数声明优先级高于变量赋值
  7. 分解质因数(包括证明的详解)
  8. [生活日记] 社会真的这么乱?尼姑也行骗,道德何在
  9. Java前后端的JSON传输一(前后端JSON格式转换)
  10. 国民体质测定标准计算机应用软件,体测标准计算器
  11. python_jpype1 调用java代码
  12. Django3.0入门教程【四】:Django常用命令
  13. 大学计算机教程王梦倩,【经验共享】中国矿业大学资源学院辅导员王梦倩
  14. WinRAR压缩软件安装步骤
  15. CentOS 7下限制ip访问
  16. 干货满满的 GopherChina2021 北京大会 PPT is coming
  17. MYSQL inserOrUpdate三种写法
  18. Vue报错:implicitly has an ‘any‘ type解决方法
  19. spring4 搭建开发环境
  20. SQL Server AlwaysOn读写分离配置

热门文章

  1. 2022-2028年中国树脂行业市场研究及前瞻分析报告
  2. Docker入门六部曲——Stack
  3. 2022-2028年中国橡胶密封制品行业市场研究及前瞻分析报告
  4. 2021-2027年中国氟磷腈橡胶行业发展形势分析及市场前景规划报告
  5. OpenCV 笔记(01)— OpenCV 概念、整体架构、各模块主要功能
  6. 【Spring】通过动态代理改进银行转账事务控制
  7. 【软件工程】VB版机房文档总结
  8. shell 批量转换文件编码
  9. Python type hints 之 Optional,Union
  10. LeetCode简单题之三维形体的表面积