【備忘録】PyTorchのOptimizerとSchedulerの挙動
ちょっとPyTorchのコード書いてて「Schedulerってなんだっけな?Optimizerとの違いって何だっけ?」って混乱してしまったので、備忘用のメモ
なにも考えずにOptimizerを使うと、ミニバッチごとに学習率が変化する
これをepochごとにも調整したい場合があったりします。
そんなときに使用するのがschedulerってイメージですかね。
先程より学習の進行が鈍くなったことがわかるでしょうか? コードではミニバッチは使ってないんですが、schedulerによる学習率の減衰が加わったため学習が遅くなっているわけです。
実際にはサンプルコードのようにoptimizer.stepはミニバッチごと、schedulerはepochごとに減衰させていくのが正しそう
(裏を取りたい気持ち)
参考文献