我正在研究一個圖像分類器,并試圖實(shí)現(xiàn)循環(huán)學(xué)習(xí)率以獲得更好的結(jié)果。我正在使用lr_scheduler。LambdaLR在訓(xùn)練期間調(diào)整學(xué)習(xí)速率,但我遇到了一個錯誤,我不確定是什么原因造成的。這是我的代碼:lr_find_epochs = 2start_lr = 1e-7end_lr = 0.1# Set up the model, optimizer and loss function for the experimentoptimizer = torch.optim.SGD(model.parameters(), start_lr)criterion = nn.NLLLoss()# LR function lambdalr_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)這是我遇到的錯誤:lr_scheduler.py中的錯誤。
1 回答
拉丁的傳說
TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超8個贊
問題是由此處的此行引起的
scheduler = torch.optim.lr_scheduler.LambdaLR(optimizer, lr_lambda=lr_lambda)
由于錯誤表明您嘗試在分配值之前引用值,即lambda函數(shù)被調(diào)用自身作為當(dāng)前未分配給任何內(nèi)容的參數(shù)。因此,在lr_scheduler.py
也許您想將其他內(nèi)容傳遞給 lambda 函數(shù)。
添加回答
舉報(bào)
0/150
提交
取消
