實現 Adam 算法的優化器。
繼承自:Optimizer
用法
tf.compat.v1.train.AdamOptimizer(
learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-08, use_locking=False,
name='Adam'
)
參數
-
learning_rate
張量或浮點值。學習率。 -
beta1
浮點值或常量浮點張量。一階矩估計的 index 衰減率。 -
beta2
浮點值或常量浮點張量。二階矩估計的 index 衰減率。 -
epsilon
用於數值穩定性的小常數。這個 epsilon 是 Kingma 和 Ba 論文中的 "epsilon hat"(在 2.1 節之前的公式中),而不是論文算法 1 中的 epsilon。 -
use_locking
如果 True 使用鎖進行更新操作。 -
name
應用漸變時創建的操作的可選名稱。默認為"Adam"。
遷移到 TF2
警告:這個 API 是為 TensorFlow v1 設計的。繼續閱讀有關如何從該 API 遷移到本機 TensorFlow v2 等效項的詳細信息。見TensorFlow v1 到 TensorFlow v2 遷移指南有關如何遷移其餘代碼的說明。
tf.compat.v1.train.AdamOptimizer 與 Eager 模式和 tf.function
兼容。啟用即刻執行後,learning_rate
, beta1
, beta2
和 epsilon
都可以是不帶參數並返回要使用的實際值的可調用對象。這對於在優化器函數的不同調用中更改這些值很有用。
要切換到原生 TF2 樣式,請改用 tf.keras.optimizers.Adam
。請注意,由於實現的差異,tf.keras.optimizers.Adam
和tf.compat.v1.train.AdamOptimizer
在浮點數值上可能會略有不同,即使用於變量更新的公式仍然匹配。
到原生 TF2 的結構映射
前:
optimizer = tf.compat.v1.train.AdamOptimizer(learning_rate=0.001)
後:
optimizer = tf.keras.optimizers.Adam(learning_rate=0.001)
如何映射參數
TF1 參數名稱 | TF2 參數名稱 | 注意 |
---|---|---|
learning_rate | learning_rate | 小心將 learning_rate 設置為從全局步驟計算的張量值。在 TF1 中,這通常意味著動態學習率,並且會在每一步中重新計算。在 TF2 (eager + function) 中,它會將其視為僅計算一次的標量值,而不是每次都計算的符號占位符。 |
beta1 | beta_1 | |
beta2 | beta_2 | |
epsilon | epsilon | TF1 中默認值為 1e-08,TF2 中默認值為 1e-07。 |
use_locking | 不適用 | 不適用於 TF2。 |
使用示例之前和之後
前:
x = tf.Variable([1,2,3], dtype=tf.float32)
grad = tf.constant([0.1, 0.2, 0.3])
optimizer = tf.compat.v1.train.AdamOptimizer(learning_rate=0.001)
optimizer.apply_gradients(zip([grad], [x]))
後:
x = tf.Variable([1,2,3], dtype=tf.float32)
grad = tf.constant([0.1, 0.2, 0.3])
optimizer = tf.keras.optimizers.Adam(learning_rate=0.001)
optimizer.apply_gradients(zip([grad], [x]))
參考:
Adam - 一種隨機優化方法:Kingma 等人,2015 (pdf)
相關用法
- Python tf.compat.v1.train.AdamOptimizer.compute_gradients用法及代碼示例
- Python tf.compat.v1.train.AdagradOptimizer.compute_gradients用法及代碼示例
- Python tf.compat.v1.train.AdagradDAOptimizer.compute_gradients用法及代碼示例
- Python tf.compat.v1.train.AdagradOptimizer用法及代碼示例
- Python tf.compat.v1.train.AdadeltaOptimizer用法及代碼示例
- Python tf.compat.v1.train.AdadeltaOptimizer.compute_gradients用法及代碼示例
- Python tf.compat.v1.train.FtrlOptimizer.compute_gradients用法及代碼示例
- Python tf.compat.v1.train.get_or_create_global_step用法及代碼示例
- Python tf.compat.v1.train.cosine_decay_restarts用法及代碼示例
- Python tf.compat.v1.train.Optimizer用法及代碼示例
- Python tf.compat.v1.train.init_from_checkpoint用法及代碼示例
- Python tf.compat.v1.train.Checkpoint用法及代碼示例
- Python tf.compat.v1.train.Supervisor.managed_session用法及代碼示例
- Python tf.compat.v1.train.Checkpoint.restore用法及代碼示例
- Python tf.compat.v1.train.global_step用法及代碼示例
- Python tf.compat.v1.train.MonitoredSession.run_step_fn用法及代碼示例
- Python tf.compat.v1.train.RMSPropOptimizer.compute_gradients用法及代碼示例
- Python tf.compat.v1.train.exponential_decay用法及代碼示例
- Python tf.compat.v1.train.natural_exp_decay用法及代碼示例
- Python tf.compat.v1.train.MomentumOptimizer用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.compat.v1.train.AdamOptimizer。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。