PyTorchでは、トレーニングの途中でオプティマイザーの学習率を動的に変更することはできますか(事前に学習率のスケジュールを定義したくありません)?
だから、オプティマイザーを持っているとしましょう:
_optim = torch.optim.SGD(model.parameters(), lr=0.01)
_
トレーニング中に実行するいくつかのテストにより、学習率が高すぎることに気づいたので、_0.001
_と言うように変更したいと思います。メソッドoptim.set_lr(0.001)
はないようですが、これを行う方法はありますか?
したがって、学習率はoptim.param_groups[i]['lr']
。 optim.param_groups
は、異なる学習率を持つことができる異なる重みグループのリストです。したがって、単に次のことを行います。
for g in optim.param_groups:
g['lr'] = 0.001
トリックを行います。