首页 养生问答 疾病百科 养生资讯 女性养生 男性养生

求教pytorch这段代码的意思learning_rate = 1e-6

发布网友 发布时间:2022-04-21 09:45

我来回答

1个回答

热心网友 时间:2022-05-22 01:16

pytorch中这段代码的意思是把学习率learning_rate设为0.000001

但是设置学习率不是给learning_rate赋值就可以完成的,

在pytorch中设置learning_rate有六种方法(这里的LR就是LearningRate的缩写)

1等步长间隔调整学习率

optim.lr_scheler.StepLR(optimizer, step_size, gamma=0.1, last_epoch=-1)

2cosine学习率

optim.lr_scheler.CosineAnnealingLR(optimizer, T_max, eta_min=0)

3指数衰减学习率

optim.lr_scheler.ExponentialLR(optimizer, gamma, last_epoch=-1)

4自适应调整学习率

optim.lr_scheler.ReceLROnPlateau(optimizer, mode='min', factor=0.1, patience=10,verbose=False, threshold=1e-4, threshold_mode='rel',cooldown=0, min_lr=0, eps=1e-8)

5非等间隔调整学习率

optim.lr_scheler.MultiStepLR(optimizer, milestones, gamma=0.1, last_epoch=-1)

6自定义网络层隔学习率

optim.lr_scheler.LambdaLR( optimizer, lr_lambda, last_epoch=-1)

我给你一个等步长间隔调整学习率的例子,你看看吧

import torch

import torch.optim as optim

from torch.optim import lr_scheler

from torchvision.models import AlexNet

model = AlexNet(num_classes=2)

optimizer = optim.SGD(params = model.parameters(), lr=0.05)

#每10次迭代,lr = lr * gamma

scheler = lr_scheler.StepLR(optimizer, step_size=10, gamma=0.1)

for epoch in range(40):

 scheler.step()

 lr = scheler.get_lr()

 print(epoch, scheler.get_lr()[0])

源代码(注意源代码的缩进)

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com