学习率调整

class _LRScheduler

主要属性

  • optimizer:关联的优化器
  • last_epoch:记录epoch数
  • bash_lrs:记录初始学习率
class _LRScheduler(object):
def __init__(self, optimizer, last_epoch = -1)

主要方法:

  • step():更新下一个epoch的学习率
  • get_lr():虚函数,计算下一个epoch的学习率
class _LRScheduler(object):
def __init__(self,optimizer,last_epoch=-1) def get_lr(self):
raise NotImplementedError
  1. StepLR

    功能:等间隔调整学习率

    主要参数:
  • step_size:调整间隔数
  • gamma:调整系数

    调整方式:lr=lr*gamma
lr_scheduler.StepLR(optimizer,step_size,gamma=0.1,last_epoch=-1)
  1. MultiStepLR

    功能:按给定间隔调整学习率

    主要参数:
  • milestones:设定调整时刻数
  • gamma:调整系数

    调整方式:lr = lr*gamma
lr_scheduler.MultiStepLR(optimizer,milestones,gamma=0.1,last_epoch=-1)
  1. ExponentialLR

    功能:按指数衰减调整学习率

    主要参数:
  • gamma:指数的底

    调整方式:lr = lr*gamma**epoch
lr_scheduler.ExponentialLR(optimizer,gamma,last_epoch=-1)
  1. CosineAnnealingLR

    功能:余弦周期调整学习率

    主要参数:
  • T_max:下降周期
  • eta_min:学习率下限
\[{调整方式:}\eta_t = \eta_{min}+\frac{1}{2}(\eta_{max}-\eta_{min})(1+cos(\frac{T_{cur}}{T_{max}})\pi/)
\]
  1. ReduceLRonPlateau

    功能:监控指标,当指标不再变化则调整

    主要参数:
  • mode:min/max 两种模式
  • factor:调整系数
  • patience:“耐心 ”,接受几次不变化
  • cooldown:“冷却时间”,停止监控一段时间
  • verbose:是否打印日志
  • min_lr:学习率下限
  • eps:学习率衰减最小值
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)
  1. LambdaLR

    功能:自定义调整策略

    主要参数:
  • lr_lambda:function or list
lr_scheduler.LambdaLR(optimizer,lr_lambda, last_epoch=-1)

学习率调整小结

  1. 有序调整:Step,MultiStep,Exponetial,CosineAnnealing
  2. 自适应调整:ReduceLROnPleateau
  3. 自定义调整:Lambda

学习率初始化

  1. 设置较小数:0.01、0.001、0.0001
  2. 搜索最大学习率:《Cyclical Learning Rates for Training Neural Networks》

pytorch(17)学习率调整的更多相关文章

  1. 【转载】 Pytorch中的学习率调整lr_scheduler,ReduceLROnPlateau

    原文地址: https://blog.csdn.net/happyday_d/article/details/85267561 ------------------------------------ ...

  2. 【转载】 PyTorch学习之六个学习率调整策略

    原文地址: https://blog.csdn.net/shanglianlm/article/details/85143614 ----------------------------------- ...

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

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

  4. Pytorch系列:(八)学习率调整方法

    学习率的调整会对网络模型的训练造成巨大的影响,本文总结了pytorch自带的学习率调整函数,以及其使用方法. 设置网络固定学习率 设置固定学习率的方法有两种,第一种是直接设置一些学习率,网络从头到尾都 ...

  5. 史上最全学习率调整策略lr_scheduler

    学习率是深度学习训练中至关重要的参数,很多时候一个合适的学习率才能发挥出模型的较大潜力.所以学习率调整策略同样至关重要,这篇博客介绍一下Pytorch中常见的学习率调整方法. import torch ...

  6. Keras学习率调整

    Keras提供两种学习率适应方法,可通过回调函数实现. 1. LearningRateScheduler keras.callbacks.LearningRateScheduler(schedule) ...

  7. pytorch中的学习率调整函数

    参考:https://pytorch.org/docs/master/optim.html#how-to-adjust-learning-rate torch.optim.lr_scheduler提供 ...

  8. 自适应学习率调整:AdaDelta

    Reference:ADADELTA: An Adaptive Learning Rate Method 超参数 超参数(Hyper-Parameter)是困扰神经网络训练的问题之一,因为这些参数不可 ...

  9. tensorflow中的学习率调整策略

    通常为了模型能更好的收敛,随着训练的进行,希望能够减小学习率,以使得模型能够更好地收敛,找到loss最低的那个点. tensorflow中提供了多种学习率的调整方式.在https://www.tens ...

随机推荐

  1. Codeforces Round #550 (Div. 3) E. Median String (思维,模拟)

    题意:给你两个字符串\(s\)和\(t\),保证\(t\)的字典序大于\(s\),求他们字典序中间的字符串. 题解:我们假设题目给的不是字符串,而是两个10禁止的正整数,那么输出他们之间的数只要把他两 ...

  2. [笔记]吞吐量(TPS)、QPS、并发数、响应时间(RT)概念

    开发的原因,需要对吞吐量(TPS).QPS.并发数.响应时间(RT)几个概念做下了解,查自百度百科,记录如下: 1. 响应时间(RT) 响应时间是指系统对请求作出响应的时间.直观上看,这个指标与人对软 ...

  3. 苹果证书p12和描述文件的创建方法

    在2020年之前,我们在使用香蕉云编创建苹果证书的时候,只需要注册苹果开发者账号,但不需要缴费成为开发者. 在2020年之后,需要先缴费成为苹果开发者. 假如你还没有注册苹果开发者账号,可以先参考下下 ...

  4. ffmpeg开发环境搭建--(linux)

    1.     下载源码: http://ffmpeg.org/download.html 2.     解压:tar –xvf ffmpeg-3.2.1.tar.bz2 3.     配置 Eg:./ ...

  5. 关于谷歌浏览器不支持html5中audio的autoplay解决方法(js代码解决)

    当我们直接写autoplay时,在chrome中浏览器并没有自动播放音频: 如果直接通过js来调用audio的play()方法也不行: 控制台还会报错 大概意思:play()调用失败,因为用户没有与文 ...

  6. React Testing All in One

    React Testing All in One React 测试 https://reactjs.org/docs/testing.html jest 26.4 https://jestjs.io/ ...

  7. alipay 小程序 & online IDE & demos

    alipay 小程序 & online IDE & demos system-info iOS / Andriod https://opendocs.alipay.com/mini/a ...

  8. react UI 框架对比

    传送门  https://blog.csdn.net/qiqingjin/article/details/79219206 点击

  9. 创新全球算力生态价值,SPC算力生态强势来袭!

    当前,区块链技术已经到了一个新的时代,即3.0时代.在区块链3.0时代,区块链技术迎来了数字经济革命,各行各业也在积极寻找与区块链能够融合的切入点.而随着区块链的愈加成熟,区块链技术也愈加被更多的人应 ...

  10. 2. Vue语法--插值操作&动态绑定属性 详解

    目录 1. 设置vue模板 2. vue语法--插值操作 3. 动态绑定属性--v-bind 一. 设置vue模板 我们经常新建一个vue项目的时候, 会写如下的一段代码 <!DOCTYPE h ...