实现 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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。