pytorch实现查看当前学习率


Posted in Python onJune 24, 2020

在pytorch训练过程中可以通过下面这一句代码来打印当前学习率

print(net.optimizer.state_dict()['param_groups'][0]['lr'])

补充知识:Pytorch:代码实现不同层设置不同的学习率,选择性学习某些层参数

1,如何动态调整学习率

在使用pytorch进行模型训练时,经常需要随着训练的进行逐渐降低学习率,在pytorch中给出了非常方面的方法:

假设我们定义了一个优化器:

import torch
import torch.nn as nn
optimizer = torch.optim(model.parameters(), lr = 0.01, momentum = 0.9)

该优化器的初始化学习为0.01,

如果我们学习每个"n" 个epoch把学习率降低为原来的0.9倍,则需要声明一个学习率调节器:

torch.optim.lr_scheduler.StepLR(optimizer, step_size, gamma=0.1, last_epoch=-1)

其中:

optimizer: 前面声明的优化器;

step_size: 每step_size个epoch学习率降低为原来的gamma倍,

last_epoch: 当前所处的epoch

例如:

# Assuming optimizer uses lr = 0.05 for all groups
 # lr = 0.05  if epoch < 30
 # lr = 0.005 if 30 <= epoch < 60
 # lr = 0.0005 if 60 <= epoch < 90
 # ...
 scheduler = StepLR(optimizer, step_size=30, gamma=0.1)
 for epoch in range(100):
  scheduler.step()
  train(...)
  validate(...)

另外其他常用的更新策略类似:

torch.optim.lr_scheduler.ExponentialLR(optimizer, gamma, last_epoch=-1)

torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max, eta_min=0, last_epoch=-1)

torch.optim.lr_scheduler.ReduceLROnPlateau(optimizer, mode='min', factor=0.1, patience=10, verbose=False, threshold=0.0001, threshold_mode='rel', cooldown=0, min_lr=0, eps=1e-08)

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

2,如何选择性学习某些参数

对于我们现有的模型model,通过调整参数的requires_grad 属性控制该模型是否参与求导运算

for name, param in model.named_parameters():
 if param.requires_grad:
  print("requires_grad: True ", name)
 else:
  print("requires_grad: False ", name)

如果模型中包含多个子模块,可用通过

sub_block = model.children()

获取该模块,然后通过迭代索引的方式获取参数:

for name, param in sub_block.named_parameters()

以上这篇pytorch实现查看当前学习率就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python3编写C/S网络程序实例教程
Aug 25 Python
Python使用遗传算法解决最大流问题
Jan 29 Python
Python实现读取机器硬件信息的方法示例
Jun 09 Python
python单例模式实例解析
Aug 28 Python
在pytorch中为Module和Tensor指定GPU的例子
Aug 19 Python
python多环境切换及pyenv使用过程详解
Sep 27 Python
Python+OpenCV 实现图片无损旋转90°且无黑边
Dec 12 Python
Python 读取有公式cell的结果内容实例方法
Feb 17 Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
May 22 Python
pycharm 实现复制一行的快捷键
Jan 15 Python
详解Python中的Lock和Rlock
Jan 26 Python
详解PyTorch模型保存与加载
Apr 28 Python
在pytorch中动态调整优化器的学习率方式
Jun 24 #Python
CentOS 7如何实现定时执行python脚本
Jun 24 #Python
python tkiner实现 一个小小的图片翻页功能的示例代码
Jun 24 #Python
在tensorflow实现直接读取网络的参数(weight and bias)的值
Jun 24 #Python
基于pytorch中的Sequential用法说明
Jun 24 #Python
django haystack实现全文检索的示例代码
Jun 24 #Python
Python爬虫如何应对Cloudflare邮箱加密
Jun 24 #Python
You might like
可快速识别放射性物质-国外大神教你diy一个开放式辐射探测器
2020/03/12 无线电
php操作mongodb封装类与用法实例
2018/09/01 PHP
CI框架简单分页类用法示例
2020/06/06 PHP
How to Auto Include a Javascript File
2007/02/02 Javascript
常见效果实现之返回顶部(结合淡入、淡出、减速滚动)
2012/01/04 Javascript
javascript文本框内输入文字倒计数的方法
2015/02/24 Javascript
jQuery的基本概念与高级编程
2015/05/14 Javascript
jQuery插件Timelinr 实现时间轴特效
2015/10/04 Javascript
向JavaScript的数组中添加元素的方法小结
2015/10/24 Javascript
详解AngularJS中的filter过滤器用法
2016/01/04 Javascript
Node.js的MongoDB驱动Mongoose基本使用教程
2016/03/01 Javascript
JavaScript 数组some()和filter()的用法及区别
2016/05/20 Javascript
javascript获取网页各种高宽及位置的方法总结
2016/07/27 Javascript
JavaScript requestAnimationFrame动画详解
2017/09/14 Javascript
vue购物车插件编写代码
2017/11/27 Javascript
laydate如何根据开始时间或者结束时间限制范围
2018/11/15 Javascript
vue中实现动态生成二维码的方法
2020/02/21 Javascript
用Python编写一个每天都在系统下新建一个文件夹的脚本
2015/05/04 Python
详解 Python中LEGB和闭包及装饰器
2017/08/03 Python
Django中cookie的基本使用方法示例
2018/02/03 Python
学习python中matplotlib绘图设置坐标轴刻度、文本
2018/02/07 Python
Python简单读写Xls格式文档的方法示例
2018/08/17 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
2019/07/11 Python
python3用PyPDF2解析pdf文件,用正则匹配数据方式
2020/05/12 Python
Python正则表达式高级使用方法汇总
2020/06/18 Python
css3弹性盒子flex实现三栏布局的实现
2020/11/12 HTML / CSS
AmazeUI 输入框组的示例代码
2020/08/14 HTML / CSS
英国网上花店:Bunches
2016/11/29 全球购物
Artist Guitars新西兰:乐器在线商店
2017/09/17 全球购物
匈牙利墨盒和碳粉购买网站:CDRmarket
2018/04/14 全球购物
党的群众路线教育实践活动心得体会(医院)
2014/11/03 职场文书
打架检讨书范文
2015/01/27 职场文书
摘录式读书笔记
2015/07/01 职场文书
欠条样本
2015/07/03 职场文书
2015年教师节广播稿
2015/08/19 职场文书
正则表达式拆分url实例代码
2022/02/24 Java/Android