降低学习率torch.optim.lr_scheduler.ReduceLROnPlateau类

本文介绍如何通过调整学习率来优化神经网络的性能。利用PyTorch中的ReduceLROnPlateau类,可根据监控指标自动调整学习率,提高训练效率。文章详细解释了该类的参数设置及应用实例。
部署运行你感兴趣的模型镜像

当网络的评价指标不在提升的时候,可以通过降低网络的学习率来提高网络性能。所使用的类

class 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)

其中

  • optimer指的是网络的优化器
  • mode (str) ,可选择‘min’或者‘max’,min表示当监控量停止下降的时候,学习率将减小,max表示当监控量停止上升的时候,学习率将减小。默认值为‘min’
  • factor 学习率每次降低多少,new_lr = old_lr * factor
  • patience=10,容忍网路的性能不提升的次数,高于这个次数就降低学习率
  • verbose(bool) - 如果为True,则为每次更新向stdout输出一条消息。 默认值:False
  • threshold(float) - 测量新最佳值的阈值,仅关注重大变化。 默认值:1e-4
  • cooldown: 减少lr后恢复正常操作之前要等待的时期数。 默认值:0。
  • min_lr,学习率的下限
  • eps ,适用于lr的最小衰减。 如果新旧lr之间的差异小于eps,则忽略更新。 默认值:1e-8。

注意

使用的时候需要选择网络的度量指标,使用如下类的step方法实现,例子如下:

栗子:

optimizer = torch.optim.SGD(model.parameters(), lr=0.01)
scheduler = ReduceLROnPlateau(optimizer, 'min',factor=0.5, patience=4, verbose=True)
.....
scheduler.step(train_loss)
# scheduler.step(val_loss)

 

您可能感兴趣的与本文相关的镜像

PyTorch 2.8

PyTorch 2.8

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值