动态调整学习率 PyTorch optimizer

本文详细介绍了PyTorch中ReduceLROnPlateau学习率调整方法,它根据验证指标在耐心期内是否改善来降低学习率。内容包括参数解释、使用示例及代码实现,帮助理解如何动态调整学习率以优化模型训练。
摘要由CSDN通过智能技术生成

总述

官网地址:ReduceLROnPlateau
在这里插入图片描述

以ReduceLROnPlateau为例讲解参数

以最后一个为例,详细介绍:
该方法是PyTorch提供的一种基于验证指标的调整方法。它的原理是:当指标停止改善时,降低学习率。当模型的学习停滞时,训练过程通常会受益于将学习率降低2~10倍。该种调整方法读取一个度量指标,如果在“耐心”期间内没有发现它有所改善,那么就会降低学习率。
下面将一一讲解它的形参:
(1)optimizer:在epoch循环之前定义好的优化器
(2)mode:可选str字符串数据,为min或max。当选择min时,代表当度量指标停止下降时,开始减小学习率;当选择max时,代表当度量指标停止上升时,开始减小学习率。
(3)factor:float类型数据,学习率调整的乘法因子,默认值为0.1。
(4)patience:int类型数据,可容忍的度量指标没有提升的epoch数目,默认为10。举例说明,当其设置为10时,我们可以容忍10个epoch内没有提升,如果在第11个epoch依然没有提升,那么就开始降低学习率。
(5)verbose:bool数据,如果设置为True,输出每一次更新的信息,默认为False
(6)threshold:float类型数据,衡量新的最佳阈值,仅关注重大变化,默认为0.0001。
(7)threshold_mode:可选str字符串数据,为rel或abs,默认为rel。在rel模式下,如果mode参数为max,则动态阈值(dynamic_threshold)为best*(1+threshold),如果mode参数为min,则动态阈值为best+threshold,如果mode参数为min,则动态阈值为best-threshold。
(8)cooldown:int类型数据,减少lr后恢复正常操作之前要等待的epoch数,默认为0。
(9)min_lr:float或list类型数据,学习率的下界,默认为0。
(10)eps:float类型数据,学习率的最小变化值。如果调整后的学习率和调整前的差距小于eps的话,那么就不做任何调整,默认为1e-8。

其使用案例为:

>>> optimizer = torch.optim.SGD(model.parameters(), lr=0.1
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值