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指定路径寻找符合匹配模式文件
May 22 Python
python比较两个列表大小的方法
Jul 11 Python
python简单分割文件的方法
Jul 30 Python
一个基于flask的web应用诞生 用户注册功能开发(5)
Apr 11 Python
python+ffmpeg视频并发直播压力测试
Mar 06 Python
Python给图像添加噪声具体操作
Mar 03 Python
Python实现的插入排序,冒泡排序,快速排序,选择排序算法示例
May 04 Python
简单了解python数组的基本操作
Nov 26 Python
Keras-多输入多输出实例(多任务)
Jun 22 Python
Python调用Redis的示例代码
Nov 24 Python
Python实现猜拳与猜数字游戏的方法详解
Apr 06 Python
python中validators库的使用方法详解
Sep 23 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
IP138 IP地址查询小偷实现代码
2010/02/15 PHP
php对大文件进行读取操作的实现代码
2013/01/23 PHP
php计算几分钟前、几小时前、几天前的几个函数、类分享
2014/04/09 PHP
PHP基于GD2函数库实现验证码功能示例
2019/01/27 PHP
Laravel 框架返回状态拦截代码
2019/10/18 PHP
用Greasemonkey 脚本收藏网站会员信息到本地
2009/10/26 Javascript
关于flash遮盖div浮动层的解决方法
2010/07/17 Javascript
scrollWidth,clientWidth,offsetWidth的区别
2015/01/13 Javascript
jQuery扁平化风格下拉框美化插件FancySelect使用指南
2015/02/10 Javascript
RequireJS使用注意细节
2016/05/15 Javascript
jQuery使用deferreds串行多个ajax请求
2016/08/22 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
2016/09/20 Javascript
javascript判断firebug是否开启的方法
2016/11/23 Javascript
在javascript中,null>=0 为真,null==0却为假,null的值详解
2017/02/22 Javascript
Vue中的v-cloak使用解读
2017/03/27 Javascript
JavaScript数据结构学习之数组、栈与队列
2017/05/02 Javascript
浅谈Vue.nextTick 的实现方法
2017/10/25 Javascript
React props和state属性的具体使用方法
2018/04/12 Javascript
原生JS实现的轮播图功能详解
2018/08/06 Javascript
vue.js实现会动的简历(包含底部导航功能,编辑功能)
2019/04/08 Javascript
vue弹出框组件封装实例代码
2019/10/31 Javascript
ES2020 新特性(种草)
2020/01/12 Javascript
微信小程序上传帖子的实例代码(含有文字图片的微信验证)
2020/07/11 Javascript
如何使用gpu.js改善JavaScript的性能
2020/12/01 Javascript
[32:26]EG vs IG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[49:17]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第三场 1月26日
2021/03/11 DOTA
学习Python3 Dlib19.7进行人脸面部识别
2018/01/24 Python
python 多个参数不为空校验方法
2019/02/14 Python
Python 给屏幕打印信息加上颜色的实现方法
2019/04/24 Python
python利用appium实现手机APP自动化的示例
2021/01/26 Python
中国高端鲜花第一品牌:roseonly(一生只送一人)
2017/02/12 全球购物
大学生助学金感谢信
2015/01/21 职场文书
2015年教师国培感言
2015/08/01 职场文书
Golang中interface{}转为数组的操作
2021/04/30 Golang
基于Python编写简易版的天天跑酷游戏的示例代码
2022/03/23 Python
Android Flutter实现图片滑动切换效果
2022/04/07 Java/Android