[解決済み] GradientDescentOptimizerの適応学習率はどのように設定するのですか?
2022-11-09 15:56:51
質問
TensorFlowを使ってニューラルネットワークを学習させています。このように
GradientDescentOptimizer
:
init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)
mse = tf.reduce_mean(tf.square(out - out_))
train_step = tf.train.GradientDescentOptimizer(0.3).minimize(mse)
ここで気になるのは、学習率の更新ルールやその減衰値の設定方法がわからないことです。
ここで適応学習率を使うにはどうしたらいいでしょうか?
どのように解決するのですか?
まず最初に
tf.train.GradientDescentOptimizer
は、すべてのステップですべての変数に対して一定の学習率を使用するように設計されています。また、TensorFlow には、すぐに使える適応型オプティマイザとして、以下のものがあります。
tf.train.AdagradOptimizer
と
tf.train.AdamOptimizer
といった具合で、これらはドロップインで置き換えることができます。
しかし、そうでないバニラ勾配降下法で学習率を制御したい場合、そのために
learning_rate
の引数を
tf.train.GradientDescentOptimizer
コンストラクタ
は
Tensor
オブジェクトを使用することができます。これにより、例えば各ステップで学習率に異なる値を計算することができる。
learning_rate = tf.placeholder(tf.float32, shape=[])
# ...
train_step = tf.train.GradientDescentOptimizer(
learning_rate=learning_rate).minimize(mse)
sess = tf.Session()
# Feed different values for learning rate to each training step.
sess.run(train_step, feed_dict={learning_rate: 0.1})
sess.run(train_step, feed_dict={learning_rate: 0.1})
sess.run(train_step, feed_dict={learning_rate: 0.01})
sess.run(train_step, feed_dict={learning_rate: 0.01})
別の方法として、スカラー
tf.Variable
を作成し、学習率を変更するたびにそれを代入することもできます。
関連
-
[解決済み] ファイルのコピー方法について教えてください。
-
[解決済み] Pythonのswitch文の代用品?
-
[解決済み] NaN値をチェックするにはどうすればよいですか?
-
[解決済み】forループを使った辞書の反復処理
-
[解決済み] 前月の日時オブジェクトを返す
-
[解決済み] django.db.migrations.exceptions.InconsistentMigrationHistory
-
[解決済み] 小数点以下1桁を取得する[重複]。
-
[解決済み] Python 3でバイナリデータを標準出力に書き込むには?
-
[解決済み] なぜ(0-6)は-6=偽なのか?重複
-
[解決済み] virtualenv の `--no-site-packages` オプションを元に戻す。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 2つの線分が交差しているかどうかを確認するにはどうすればよいですか?
-
[解決済み] dict を txt ファイルに書き、それを読み取る?
-
[解決済み] DataFrameに日付間の日数カラムを追加する pandas
-
[解決済み] Cythonのコードを含むPythonパッケージはどのように構成すればよいのでしょうか?
-
[解決済み] 異なる順序で同じ要素を持つ2つのJSONオブジェクトを等しく比較するには?
-
[解決済み] djangoフレームワークでフォームフィールドから値を取得するには?
-
[解決済み] virtualenv の `--no-site-packages` オプションを元に戻す。
-
[解決済み] Python 言語を決定するには?
-
[解決済み] virtualenvsはどこに作成するのですか?
-
[解決済み] 認証プラグイン 'caching_sha2_password' はサポートされていません。