一般来说,在模型训练的后期,学习率就可以适当调低一些,以获得更好的训练效果。

需要准备记录这些参数:

  • epochs_since_improvement:如果一个新的epoch并没有降低loss,则其加一;反之,则清零
  • decays_since_improvement:如果触发了一次学习率调整,则其加一;而如果一个新的epoch下loss降低,则清零
  • shrink_factor:收缩因子,控制学习率的缩小速度。默认为0.6,decay每加1,则再乘0.6,加快学习率的收缩速度

准备学习率调整函数:

def adjust_learning_rate(optimizer, shrink_factor):print("\nDECAYING learning rate.")for param_group in optimizer.param_groups:param_group['lr'] = param_group['lr'] * shrink_factorprint("The new learning rate is %f\n" % (optimizer.param_groups[0]['lr'],))

其实就是取出优化器的lr参数进行修改。

调用:

if epochs_since_improvement == 10:break
if epochs_since_improvement > 0 and epochs_since_improvement % 2 == 0:checkpoint = 'BEST_checkpoint.tar'checkpoint = torch.load(checkpoint)model = checkpoint['model']optimizer = checkpoint['optimizer']decays_since_improvement += 1print("\nDecays since last improvement: %d\n" % (decays_since_improvement,))adjust_learning_rate(optimizer, 0.6 ** decays_since_improvement)

Pytorch 一种调整学习率的思路相关推荐

  1. 【深度学习】图解 9 种PyTorch中常用的学习率调整策略

    learning rate scheduling 学习率调整策略 01 LAMBDA LR 将每个参数组的学习率设置为初始lr乘以给定函数.当last_epoch=-1时,将初始lr设置为初始值. t ...

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

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

  3. PyTorch学习之六个学习率调整策略

    PyTorch学习率调整策略通过torch.optim.lr_scheduler接口实现.PyTorch提供的学习率调整策略分为三大类,分别是 a. 有序调整:等间隔调整(Step),按需调整学习率( ...

  4. PyTorch的六个学习率调整

    本文截取自<PyTorch 模型训练实用教程>,获取全文pdf请点击:https://github.com/tensor-yu/PyTorch_Tutorial 文章目录 一.pytorc ...

  5. pytorch 学习率代码_DL知识拾贝(Pytorch)(五):如何调整学习率

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

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

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

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

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

  8. 【Pytorch教程】使用lr_scheduler调整学习率

    概述 torch.optim.lr_scheduler 模块提供了一些根据 epoch 迭代次数来调整学习率 lr 的方法.为了能够让损失函数最终达到收敛的效果,通常 lr 随着迭代次数的增加而减小时 ...

  9. 【PyTorch】lr_scheduler.StepLR==>调整学习率的方法

    lr_scheduler.StepLR class torch.optim.lr_scheduler.StepLR(optimizer, step_size, gamma=0.1, last_epoc ...

最新文章

  1. Jmeter基础之JMeter参数化补充练习
  2. 深度学习-CNN tensorflow 可视化
  3. java option_option 的经典属性
  4. JavaScript中document.getElementById和document.write
  5. ORACLE 常用函数——日期/时间函数
  6. ASP.NET Trick文章系列--使用State Server管理Session状态的另类经济用法
  7. RazorPage介绍(一)
  8. mongodb 分组聚合_MongoDB 临时表横空出现 1 万+,这条语句执行前请准备好翻车的姿势...
  9. android自动开机慢,手机开机慢怎么回事?安卓手机开机慢的原因和解决方法图文详解...
  10. R语言按照人口比例绘制甘肃地图
  11. FTP数据抓包上传下载图片(wireshark)
  12. 阿里云构建仓库与镜像
  13. nginx配置地址端口
  14. 服务器能当电脑用吗?与普通电脑有何区别?
  15. 完美解决KMplayer无法播放RMVB、RM电影问题
  16. OpenCore Gen-X :一键制作黑苹果OpenCore EFI文件
  17. 在windows7下安装vs2017插件 GLSL language integration v0.10.120.vsix报错:microsoft.visualc.redist.12
  18. 判断输入的Email地址格式是否正确
  19. 51单片机STC 89C52RC进阶 – 两片74HC595D串联实现跑马灯
  20. IHome主页 - 让你的浏览器主页与众不同

热门文章

  1. java5个线程_java基础thread——java5之后的多线程(浅尝辄止)
  2. aspx 修改了样式但是在点击按钮后被刷新_135编辑器使用教程|动画按钮到底在哪里啊?...
  3. 钢琴块2电脑版_风暴魔域2电脑版下载_电脑玩风暴魔域2模拟器_夜神安卓模拟器...
  4. docker安装启动mysql5.6_mysql5.6在ubuntu下的docker中安装的方法详解
  5. eclipse 64位_Eclipse安装教程
  6. 计算机算法设计与分析 大学生电影节观影问题
  7. 饭卡 01背包 DP
  8. #CSP 201912-1 报数(C语言)(100分)
  9. ESP32-IDF给FATFS添加长文件名支持,更改_USE_LFN以支持大于8.3格式的文件名
  10. Python的基础知识【面试遇到】