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 相关文章推荐
python元组操作实例解析
Sep 23 Python
Python 在字符串中加入变量的实例讲解
May 02 Python
python 格式化输出百分号的方法
Jan 20 Python
python3+PyQt5 创建多线程网络应用-TCP客户端和TCP服务器实例
Jun 17 Python
python数据挖掘需要学的内容
Jun 23 Python
Python及Pycharm安装方法图文教程
Aug 05 Python
多个python文件调用logging模块报错误
Feb 12 Python
python 使用事件对象asyncio.Event来同步协程的操作
May 04 Python
浅谈优化Django ORM中的性能问题
Jul 09 Python
PyTorch安装与基本使用详解
Aug 31 Python
python中的插入排序的简单用法
Jan 19 Python
Python  序列化反序列化和异常处理的问题小结
Dec 24 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
PHP数组排序函数合集 以及它们之间的联系分析
2013/06/27 PHP
IIS6.0中配置php服务全过程解析
2013/08/07 PHP
JavaScript版代码高亮
2006/06/26 Javascript
jQuery使用手册之三 CSS操作
2007/03/24 Javascript
轻量级 JS ToolTip提示效果
2010/07/20 Javascript
JS数学函数Exp使用说明
2012/08/09 Javascript
jQuery实现图片放大预览实现原理及代码
2013/09/12 Javascript
js简单判断移动端系统的方法
2016/02/25 Javascript
第一次接触神奇的前端框架vue.js
2016/12/01 Javascript
jquery判断页面网址是否有效的两种方法
2016/12/11 Javascript
jQuery解析返回的xml和json方法详解
2017/01/05 Javascript
vue中引入第三方字体文件的方法示例
2018/12/17 Javascript
countUp.js实现数字动态变化效果
2019/10/17 Javascript
如何使用Jquery动态生成二级选项列表
2020/02/06 jQuery
javascript绘制简单钟表效果
2020/04/07 Javascript
vue 解决uglifyjs-webpack-plugin打包出现报错的问题
2020/08/04 Javascript
JS相册图片抖动放大展示效果的示例代码
2021/01/29 Javascript
python目录操作之python遍历文件夹后将结果存储为xml
2014/01/27 Python
python写入中英文字符串到文件的方法
2015/05/06 Python
Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析
2019/04/27 Python
python解压TAR文件至指定文件夹的实例
2019/06/10 Python
解决Python中pandas读取*.csv文件出现编码问题
2019/07/12 Python
基于python检查矩阵计算结果
2020/05/21 Python
python3.8动态人脸识别的实现示例
2020/09/21 Python
谈谈对css属性box-sizing的了解
2017/01/04 HTML / CSS
飞利浦法国官网:Philips法国
2019/07/10 全球购物
美国球迷装备的第一来源:FOCO
2020/07/03 全球购物
沃尔玛旗下墨西哥超市:Bodega Aurrera
2020/11/13 全球购物
Bloomingdale’s阿联酋:选购奢华时尚、美容及更多
2020/09/22 全球购物
实习协议书范本
2014/04/22 职场文书
超市店庆活动方案
2014/08/31 职场文书
关于召开会议的通知
2015/04/15 职场文书
入党群众意见范文
2015/06/02 职场文书
监守自盗观后感
2015/06/10 职场文书
暑假打工感想
2015/08/07 职场文书
MySQL数据库压缩版本安装与配置详细教程
2021/05/21 MySQL