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 相关文章推荐
win7安装python生成随机数代码分享
Dec 27 Python
用Python制作简单的朴素基数估计器的教程
Apr 01 Python
Python psutil模块简单使用实例
Apr 28 Python
python实现用于测试网站访问速率的方法
May 26 Python
python基于pyDes库实现des加密的方法
Apr 29 Python
python匿名函数用法实例分析
Aug 03 Python
python 列表、字典和集合的添加和删除操作
Dec 16 Python
Python基于network模块制作电影人物关系图
Jun 19 Python
Python3以GitHub为例来实现模拟登录和爬取的实例讲解
Jul 30 Python
Python self用法详解
Nov 28 Python
Python-split()函数实例用法讲解
Dec 18 Python
python四种出行路线规划的实现
Jun 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
评分9.0以上的动画电影,剧情除了经典还很燃
2020/03/04 日漫
分页详解 从此分页无忧(PHP+mysql)
2007/11/23 PHP
MySql中正则表达式的使用方法描述
2008/07/30 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
2014/04/05 PHP
PHP include任意文件或URL介绍
2014/04/29 PHP
php实现数据库的增删改查
2017/02/26 PHP
PHP数组实际占用内存大小原理解析
2020/12/11 PHP
js下通过getList函数实现分页效果的代码
2010/09/17 Javascript
jquery获取特定name所有选中的checkbox,支持IE9标准模式
2013/03/18 Javascript
javascript去除字符串中所有标点符号和提取纯文本的正则
2014/06/07 Javascript
js实现一个链接打开两个链接地址的方法
2015/05/12 Javascript
js实现商城星星评分的效果
2015/12/29 Javascript
js实现有过渡渐变效果的图片轮播相册(兼容IE,ff)
2016/01/19 Javascript
如何在Linux上安装Node.js
2016/04/01 Javascript
微信小程序 教程之引用
2016/10/18 Javascript
详解如何在Angular中快速定位DOM元素
2017/05/17 Javascript
关闭Vue计算属性自带的缓存功能方法
2018/03/02 Javascript
JavaScript获取用户所在城市及地理位置
2018/04/21 Javascript
Vue下路由History模式打包后页面空白的解决方法
2018/06/29 Javascript
JS实现的简单分页功能示例
2018/08/23 Javascript
分享5个好用的javascript文件上传插件
2018/09/16 Javascript
深入理解Python变量与常量
2016/06/02 Python
Python程序员面试题 你必须提前准备!
2018/01/16 Python
Python使用functools实现注解同步方法
2018/02/06 Python
python批量处理txt文件的实例代码
2020/01/13 Python
利用python生成照片墙的示例代码
2020/04/09 Python
Jupyter Notebook远程登录及密码设置操作
2020/04/10 Python
Python如何批量生成和调用变量
2020/11/21 Python
TensorFlow的环境配置与安装方法
2021/02/20 Python
Html5移动端网页端适配(js+rem)
2021/02/03 HTML / CSS
基本款天堂:Everlane
2017/05/13 全球购物
EGO Shoes美国/加拿大:英国时髦鞋类品牌
2018/08/04 全球购物
德国家具折扣店:POCO
2020/02/28 全球购物
计算s=f(f(-1.4))的值
2014/05/06 面试题
离婚协议书的范本
2015/01/27 职场文书
vue css 相对路径导入问题级踩坑记录
2022/06/05 Vue.js