實現 Adamax 算法的優化器。
繼承自:Optimizer
用法
tf.keras.optimizers.Adamax(
learning_rate=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-07,
name='Adamax', **kwargs
)
參數
-
learning_rate
Tensor
、浮點值或作為tf.keras.optimizers.schedules.LearningRateSchedule
的計劃。學習率。 -
beta_1
浮點值或常量浮點張量。一階矩估計的 index 衰減率。 -
beta_2
浮點值或常量浮點張量。 index 加權無窮範數的 index 衰減率。 -
epsilon
用於數值穩定性的小常數。 -
name
應用漸變時創建的操作的可選名稱。默認為"Adamax"
。 -
**kwargs
關鍵字參數。允許是"clipnorm"
或"clipvalue"
之一。"clipnorm"
(float) 按標準裁剪漸變;"clipvalue"
(float) 按值裁剪漸變。
拋出
-
ValueError
在任何無效論點的情況下。
它是基於無窮範數的亞當的變體。默認參數遵循論文中提供的參數。 Adamax 有時優於 adam,特別是在具有嵌入的模型中。
初始化:
m = 0 # Initialize initial 1st moment vector
v = 0 # Initialize the exponentially weighted infinity norm
t = 0 # Initialize timestep
帶梯度g
的參數w
的更新規則在論文第7.1節末尾說明:
t += 1
m = beta1 * m + (1 - beta) * g
v = max(beta2 * v, abs(g))
current_lr = learning_rate / (1 - beta1 ** t)
w = w - current_lr * m / (v + epsilon)
與 Adam
類似,添加 epsilon 是為了數值穩定性(尤其是在 v_t == 0
時擺脫除以零)。
與 Adam
相比,此算法的稀疏實現(當梯度是 IndexedSlices 對象時使用,通常是因為 tf.gather
或前向傳遞中的嵌入查找)僅在以下情況下更新可變切片和相應的 m_t
, v_t
項部分變量用於前向傳遞。這意味著稀疏行為與密集行為形成對比(類似於某些動量實現,除非實際使用變量切片,否則忽略動量)。
參考:
相關用法
- Python tf.keras.optimizers.Adam用法及代碼示例
- Python tf.keras.optimizers.Optimizer.set_weights用法及代碼示例
- Python tf.keras.optimizers.schedules.serialize用法及代碼示例
- Python tf.keras.optimizers.SGD用法及代碼示例
- Python tf.keras.optimizers.Optimizer用法及代碼示例
- Python tf.keras.optimizers.schedules.ExponentialDecay用法及代碼示例
- Python tf.keras.optimizers.schedules.PiecewiseConstantDecay用法及代碼示例
- Python tf.keras.optimizers.Nadam用法及代碼示例
- Python tf.keras.optimizers.RMSprop用法及代碼示例
- Python tf.keras.optimizers.schedules.deserialize用法及代碼示例
- Python tf.keras.optimizers.schedules.CosineDecay用法及代碼示例
- Python tf.keras.optimizers.schedules.CosineDecayRestarts用法及代碼示例
- Python tf.keras.optimizers.Optimizer.apply_gradients用法及代碼示例
- Python tf.keras.optimizers.Ftrl用法及代碼示例
- Python tf.keras.optimizers.Optimizer.get_weights用法及代碼示例
- Python tf.keras.optimizers.schedules.PolynomialDecay用法及代碼示例
- Python tf.keras.optimizers.serialize用法及代碼示例
- Python tf.keras.optimizers.schedules.InverseTimeDecay用法及代碼示例
- Python tf.keras.applications.inception_resnet_v2.preprocess_input用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.keras.optimizers.Adamax。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。