實現 RMSprop 算法的優化器。
繼承自:Optimizer
用法
tf.keras.optimizers.RMSprop(
learning_rate=0.001, rho=0.9, momentum=0.0, epsilon=1e-07, centered=False,
name='RMSprop', **kwargs
)
參數
-
learning_rate
Tensor
,浮點值,或作為tf.keras.optimizers.schedules.LearningRateSchedule
的計劃,或不帶參數並返回要使用的實際值的可調用對象。學習率。默認為 0.001。 -
rho
曆史/即將到來的梯度的折扣因子。默認為 0.9。 -
momentum
標量或標量Tensor
。默認為 0.0。 -
epsilon
用於數值穩定性的小常數。這個 epsilon 是 Kingma 和 Ba 論文中的 "epsilon hat"(在 2.1 節之前的公式中),而不是論文算法 1 中的 epsilon。默認為 1e-7。 -
centered
布爾值。如果True
,則通過梯度的估計方差對梯度進行歸一化;如果為 False,則通過非居中的第二時刻。將此設置為True
可能有助於訓練,但在計算和內存方麵稍微貴一些。默認為False
。 -
name
應用漸變時創建的操作的可選名稱前綴。默認為"RMSprop"
。 -
**kwargs
關鍵字參數。允許是"clipnorm"
或"clipvalue"
之一。"clipnorm"
(float) 按標準裁剪漸變;"clipvalue"
(float) 按值裁剪漸變。
RMSprop 的要點是:
- 保持梯度平方的移動(折現)平均值
- 將梯度除以該平均值的根
RMSprop 的這種實現使用的是普通動量,而不是 Nesterov 動量。
居中的版本還保留了梯度的移動平均值,並使用該平均值來估計方差。
請注意,在該算法的密集實現中,即使梯度為零(即累加器將衰減,將應用動量),變量及其對應的累加器(動量、梯度移動平均、平方梯度移動平均)也會更新。稀疏實現(當梯度是 IndexedSlices
對象時使用,通常是因為 tf.gather
或前向傳遞中的嵌入查找)不會更新變量切片或其累加器,除非這些切片在前向傳遞中使用(也不是有一個"eventual" 更正來解釋這些省略的更新)。這導致對大型嵌入查找表的更有效更新(其中大多數切片在特定的圖形執行中不被訪問),但與已發布的算法不同。
用法:
opt = tf.keras.optimizers.RMSprop(learning_rate=0.1)
var1 = tf.Variable(10.0)
loss = lambda:(var1 ** 2) / 2.0 # d(loss) / d(var1) = var1
step_count = opt.minimize(loss, [var1]).numpy()
var1.numpy()
9.683772
參考:
相關用法
- Python tf.keras.optimizers.Optimizer.set_weights用法及代碼示例
- Python tf.keras.optimizers.schedules.serialize用法及代碼示例
- Python tf.keras.optimizers.Adam用法及代碼示例
- Python tf.keras.optimizers.Adamax用法及代碼示例
- 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.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.RMSprop。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。