在Pytorch中实现torch.optim.lr_scheduler.LambdaLR时出错

问题描述 投票:0回答:1

我正在研究图像分类器,并尝试实现循环学习率以获得更好的结果。我正在使用lr_scheduler.LambdaLR来调整训练期间的学习率,但是出现一个错误,我不确定是什么原因造成的。这是我的代码:

lr_find_epochs = 2
start_lr = 1e-7
end_lr = 0.1
# Set up the model, optimizer and loss function for the experiment

optimizer = torch.optim.SGD(model.parameters(), start_lr)
criterion = nn.NLLLoss()
# LR function lambda

lr_lambda = lambda x: math.exp(x * math.log(end_lr / start_lr) / (lr_find_epochs * len( train_loader)))
scheduler = torch.optim.lr_scheduler.LambdaLR(optimizer, lr_lambda=lr_lambda)

这是我遇到的错误:local variable 'values' referenced before assignment

lr_scheduler.py中的错误。

python deep-learning pytorch
1个回答
0
投票

问题是由此行引起的

scheduler = torch.optim.lr_scheduler.LambdaLR(optimizer, lr_lambda=lr_lambda)

由于错误提示,您正在尝试在赋值之前参考该值,即lambda函数以自身作为参数调用,当前未分配给任何东西。结果,在lr_scheduler.py

中引发了错误

也许您想将其他内容传递给lambda函数。

© www.soinside.com 2019 - 2024. All rights reserved.