「Pytorch:LearningRate」の版間の差分

提供:classwiki
ナビゲーションに移動 検索に移動
15行目: 15行目:


DNNの学習においては,学習率が小さすぎると学習がなかなか進まず,一方で学習率を大きくすると,重みの更新も大雑把になり,なかなか収束してくれません.そこで,初期学習率を高く設定し,学習が進むにつれて徐々に落としていくのが一般的です.なお,具体的に学習率どの値にすればよいのかは,タスク,データセット,モデルアーキテクチャ,オプティマイザ,その他多くの要因が絡むので,一概には言えません.
DNNの学習においては,学習率が小さすぎると学習がなかなか進まず,一方で学習率を大きくすると,重みの更新も大雑把になり,なかなか収束してくれません.そこで,初期学習率を高く設定し,学習が進むにつれて徐々に落としていくのが一般的です.なお,具体的に学習率どの値にすればよいのかは,タスク,データセット,モデルアーキテクチャ,オプティマイザ,その他多くの要因が絡むので,一概には言えません.
現在の学習率は
learning_rate = 1e-1
となっています.

2025年3月24日 (月) 05:15時点における版

学習率をスケジューリングする機能を扱う練習をします.

準備

まず,作業用ディレクトリに移動した後に,以下のコマンドを実行して,プログラムをダウンロードしてください.

wget https://vrl.sys.wakayama-u.ac.jp/class/pytorch_tutorial/exersise_learningrate/exersise_learningrate.py

データセットはCIFAR-10を用います.(他の演習でダウンロード済みの場合は,以下を実行しなくても構いません.ただし,データセットへのパスを適宜修正してください.)

wget -P ./data -r https://vrl.sys.wakayama-u.ac.jp/class/pytorch_tutorial/datasets/cifar-10-batches-py/

ダウンロードしたら,exersise_classimbalance.pyをそのまま実行してください.おそらく,テストデータに対する精度は80%くらいになったと思います.

学習途中での学習率の変更

DNNの学習においては,学習率が小さすぎると学習がなかなか進まず,一方で学習率を大きくすると,重みの更新も大雑把になり,なかなか収束してくれません.そこで,初期学習率を高く設定し,学習が進むにつれて徐々に落としていくのが一般的です.なお,具体的に学習率どの値にすればよいのかは,タスク,データセット,モデルアーキテクチャ,オプティマイザ,その他多くの要因が絡むので,一概には言えません.

現在の学習率は

learning_rate = 1e-1

となっています.