这个东西是为了可以按照我们的策略lr_lambda(其实就是一个自定义的函数,这个函数以训练epoch为输入,学习率倍率系数为输出),随着训练趟数的增加,而学习率在不断变化,通常,学习率是在变小。

scheduler=torch.optim.lr_scheduler.LambdaLR(optimizer, lr_lambda, last_epoch=- 1, verbose=False)

我们只需要传入前两个即可,后面两个默认即可。

optimizer, lr_lambda,

我们关注的是上面第二个策略函数,第一个是预先定义好的,不需要管。

这是一个以训练epoch为输入,学习率倍率系数为输出的函数,一般用匿名函数:

set_lr=lambda epoch: 0.95 ** epoch上面匿名函数等价于:
def set_lr(epoch):return 0.95 ** epoch换自变量也可以,但是pytorch系统自动传入的就是epoch。下面的x还是epoch。
def set_lr(x):return 0.95 ** x

可以看到,随着epoch增大,上述返回的倍率因子变小。然后将最开始的学习率0.001乘以这个倍率因子,学习率就变小了。

我最近见到的一个常用的调整学习率的函数如下:

set_lr = lambda epoch: ((1 + math.cos(epoch * math.pi / epoch_num)) / 2) * (1 - 0.01) + 0.01上面这个相当于是x~[0,1],随着epoch增大,服从cos递减,从1到0.
倍率因子的最终结果为:x+0.01(1-x)一个比较有趣的现象是epoch总量训练到一半时,上面的倍率因子大概也是初始学习率的一半,因为cos=0,
但因为后面加了一项比较小的数,所以会比一半略多。

pytorch中LambdaLR的作用相关推荐

  1. Pytorch中apply函数作用

    pytorch中的model.apply(fn)会递归地将函数fn应用到父模块的每个子模块submodule,也包括model这个父模块自身.经常用于初始化init_weights的操作.如下appl ...

  2. Pytorch中.new()的作用

    目录 一.作用 二.使用方法 三.具体代码 四.实际应用(添加噪声) 一.作用 创建一个新的Tensor,该Tensor的type和device都和原有Tensor一致,且无内容. 二.使用方法 如果 ...

  3. PyTorch中Variable变量与torch.autograd.Variable

    一.了解Variable 顾名思义,Variable就是 变量 的意思.实质上也就是可以变化的量,区别于int变量,它是一种可以变化的变量,这正好就符合了反向传播,参数更新的属性. 具体来说,在pyt ...

  4. PyTorch中Variable变量

    一.了解Variable 顾名思义,Variable就是 变量 的意思.实质上也就是可以变化的量,区别于int变量,它是一种可以变化的变量,这正好就符合了反向传播,参数更新的属性. 具体来说,在pyt ...

  5. pytorch中model.eval的作用

    pytorch中model.eval()的作用 问题描述: torch.onnx.export()导出onnx模型后,利用onnxruntime加载onnx模型后,其输出结果与原始.pth模型的输出结 ...

  6. python batchnorm2d_BatchNorm2d原理、作用及其pytorch中BatchNorm2d函数的参数讲解

    BN原理.作用: 函数参数讲解: BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True) 1. ...

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

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

  8. pytorch中调整学习率的lr_scheduler机制

    pytorch中调整学习率的lr_scheduler机制 </h1><div class="clear"></div><div class ...

  9. pytorch中如何处理RNN输入变长序列padding

    一.为什么RNN需要处理变长输入 假设我们有情感分析的例子,对每句话进行一个感情级别的分类,主体流程大概是下图所示: 思路比较简单,但是当我们进行batch个训练数据一起计算的时候,我们会遇到多个训练 ...

最新文章

  1. 《MonkeyRunner原理剖析》第九章-MonkeyImage实现原理 - 概览
  2. 使用NTDSXtract离线抓取Domain Hash
  3. 如何用AI实现视频防抖?还是无需裁剪画面的那种 | 谷歌台湾大学
  4. C++经典面试题(最全,面中率最高)
  5. Skipping failed optional dependency /chokidar/fsevents
  6. phpcmsV9 数据库配置文件(查找、修改)
  7. 股市舆情情感分类可视化系统
  8. Google PR 到4了
  9. Android P2P语音通话实现 【转】http://macleo.iteye.com/blog/1707455
  10. 再也不用担心动态规划,BAT大佬精讲42道题目,相见恨晚
  11. sql sever2005中实现“级联删除”
  12. Mac OS X10.11下CocoaPods的安装过程
  13. 计算机控制系统的典型结构形式框图,计算机控制技术课后习题
  14. C#导入有道词典单词本到扇贝
  15. Java实现扫码枪二维码自动跳转网页(基于键盘监听)
  16. 用fiddler+chrome搞定在线学习网站
  17. 安得猛士兮守四方——国产EDA公司盘点
  18. win10关闭windows聚焦_Windows 10聚焦怎么用?教你玩转Windows聚焦功能
  19. 贪吃蛇二代 —— 穿墙版(C语言实现)
  20. 家庭用户无线上网案例(AC通过三层口对AP进行管理)

热门文章

  1. 图灵访谈:柳泽大辅谈如何想出好创意
  2. 用经典图书评分数据集,练手推荐系统(附参考源码)
  3. 清华大学施路平:双脑驱动的人工通用智能
  4. 原创 | 从席卷全球的“刷脸”乱象,看国内人脸识别立法方向
  5. 一文读懂神经网络初始化!吴恩达Deeplearning.ai最新干货
  6. 清华北大留不住,高中毕业去美国读AI本科值不值?
  7. 计算机视觉黑魔法 | 16个案例
  8. ResNets王者回归!谷歌、伯克利联合发文:它当初输给EfficientNets不是架构问题...
  9. 最新消息!腾讯紧急宣布再度延期复工时间到24号!附各大企业最新复工时间表...
  10. SAP RETAIL WRMO 补货监控