pytorch几种learning rate的使用方式

本文详细介绍了PyTorch中几种常用的学习率调度器,包括StepLR、MultiStepLR、ExponentialLR、LinearLR、CosineAnnealingLR、CyclicLR和ReduceOnPlateau。这些调度器用于在训练过程中动态调整学习率,以优化模型性能。例如,StepLR每隔一定步数将学习率乘以一个衰减因子;MultiStepLR允许自定义多个学习率更新的里程碑;CosineAnnealingLR则实现学习率的周期性变化。ReduceOnPlateau则根据损失值是否停滞来动态调整学习率,提供更灵活的策略。

pytorch的学习率都在torch.optim.lr_scheduler里面

使用方式基本一致,都需要和optimizer配合使用。说一下几个常用的。

StepLR

StepLR, 顾名思义,每隔多少个step,就乘以gamma衰减一次

使用方式scheduler = StepLR(optimizer, step_size = 30, gamma = 0.1, last_epoch = -1, verbose=False)

上面这个就表示每隔30个step就使得学习率变成之前的0.1倍。last_epoch表明这个更新LR的策略结束的位置,设置-1就是一直到最后。verbose意思是是否在更新lr时打印log,默认False。由于last_epoch和verbose都是可以设置的,后续就不写出来了。

当每一个epoch运行完之后记得使用scheduler.step()

MultiStepLR

与之类似的是MultiStepLR,如果你不想以固定的step更新LR,你可以自己手动设置一堆更新的节点,必须是递增的。

scheduler = MultiStepLR(optimizer, milestones=[30, 60, 120], gamma=0.1)

以上这个方式就表明在30,60和120的时候会更新lr。

ExponentialLR

与之类似的还有ExponentialLR,也是通过gamma系数变化,只是他只能每个epoch变化。
scheduler = ExponentialLR(optimizer, gamma) 相当于简化版的StepLR。

LinearLR

如果不希望

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值