Python 中的 torch.optim.lr_scheduler 模块

本文详细介绍了 PyTorch 中的 torch.optim.lr_scheduler 模块,包括 StepLR、MultiStepLR、ExponentialLR、LinearLR、CyclicLR、OneCycleLR、CosineAnnealingLR、CosineAnnealingWarmRestarts、LambdaLR、SequentialLR、ChainedScheduler、ConstantLR 和 ReduceLROnPlateau 等多种学习率调整策略,以及它们在深度学习训练过程中的应用和效果。
摘要由CSDN通过智能技术生成

1 torch.optim.lr_scheduler 模块介绍

lr_scheduler 模块主要是用来对学习率进行调整的方法, 该方法能让学习过程中, 学习率有特定的变化, 而不是一成不变的


2 lr_scheduler 下面的各个方法

首先一个大前提就是我们需要自己定义一个 model 和一个 optimizer, 最后再将 optimizer 放入 lr_scheduler 中

import torch
import numpy as np
from torch.optim import SGD
from torch.optim import lr_scheduler
from torch.nn.parameter import Parameter

model = [Parameter(torch.randn(2, 2, requires_grad=True))]
optimizer = SGD(model, lr=0.1)

2.1 StepLR

学习率调整方法,每过step_size轮,将此前的学习率乘以gamma

scheduler=lr_scheduler.StepLR(optimizer, step_size=30, gamma=0.1)

2.2 MultiStepLR

它会在每个milestone时,将此前学习率乘以gamma

scheduler = lr_scheduler.MultiStepLR(optimizer, milestones=[30,80], gamma=0.5)

2.3 ExponentialLR

ExponentialLR是指数型下降的学习率调节器,每一轮会将学习率乘以gamma,所以这里千万注意gamma不要设置的太小,不然几轮之后学习率就会降到0

scheduler=lr_scheduler.ExponentialLR(optimizer, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值