Se usó la API de Cloud Translation para traducir esta página.
Switch to English

tf.keras.optimizers.RMSprop

Versión de TensorFlow 1 Ver fuente en GitHub

Optimizador que implementa el algoritmo RMSprop.

Hereda de: Optimizer

Usado en los cuadernos

Usado en la guía Usado en los tutoriales

La esencia de RMSprop es:

  • Mantener un promedio móvil (descontado) del cuadrado de gradientes
  • Divida el gradiente por la raíz de este promedio

Esta implementación de RMSprop utiliza un impulso simple, no el impulso de Nesterov.

La versión centrada además mantiene un promedio móvil de los gradientes y usa ese promedio para estimar la varianza.

learning_rate Un Tensor , un valor de punto flotante o un programa que es un tf.keras.optimizers.schedules.LearningRateSchedule , o un invocable que no toma argumentos y devuelve el valor real para usar. La tasa de aprendizaje. Defeaults a 0.001.
rho Factor de descuento para el historial / gradiente próximo. El valor predeterminado es 0.9.
momentum Un escalar o un Tensor escalar. El valor predeterminado es 0.0.
epsilon Una pequeña constante para la estabilidad numérica. Este épsilon es "sombrero épsilon" en el artículo de Kingma y Ba (en la fórmula anterior a la Sección 2.1), no el épsilon en el Algoritmo 1 del artículo. Por defecto es 1e-7.
centered Booleano. Si es True , los gradientes se normalizan por la varianza estimada del gradiente; si es Falso, por el segundo momento descentrado. Establecer esto en True puede ayudar con el entrenamiento, pero es un poco más caro en términos de cálculo y memoria. El valor predeterminado es False .
name Prefijo de nombre opcional para las operaciones creadas al aplicar degradados. El valor predeterminado es "RMSprop" .
**kwargs Argumentos de palabras clave. Se permite ser uno de "clipnorm" o "clipvalue" . "clipnorm" (flotador) "clipnorm" gradientes por norma; "clipvalue" (flotante) "clipvalue" gradientes por valor.

Tenga en cuenta que en la implementación densa de este algoritmo, las variables y sus acumuladores correspondientes (impulso, promedio móvil de gradiente, promedio móvil de gradiente cuadrado) se actualizarán incluso si el gradiente es cero (es decir, los acumuladores decaerán, se aplicará el impulso). La implementación dispersa (usada cuando el gradiente es un objeto IndexedSlices , típicamente debido a tf.gather o una búsqueda de incrustación en el pase hacia adelante) no actualizará los segmentos de variables o sus acumuladores a menos que esos segmentos se hayan usado en el pase hacia adelante (ni hay un corrección "eventual" para tener en cuenta estas actualizaciones omitidas). Esto conduce a actualizaciones más eficientes para tablas de búsqueda de incrustaciones grandes (donde no se accede a la mayoría de los segmentos en una ejecución de gráfico en particular), pero difiere del algoritmo publicado.

Uso:

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

Referencia:

learning_rate Un Tensor , un valor de punto flotante o un programa que es un tf.keras.optimizers.schedules.LearningRateSchedule , o un invocable que no toma argumentos y devuelve el valor real para usar. La tasa de aprendizaje. Defeaults a 0.001.
rho Factor de descuento para el historial / gradiente próximo. El valor predeterminado es 0.9.
momentum Un escalar o un Tensor escalar. El valor predeterminado es 0.0.
epsilon Una pequeña constante para la estabilidad numérica. Este épsilon es "sombrero épsilon" en el artículo de Kingma y Ba (en la fórmula anterior a la Sección 2.1), no el épsilon en el algoritmo 1 del artículo. Por defecto es 1e-7.
centered Booleano. Si es True , los gradientes se normalizan por la varianza estimada del gradiente; si es Falso, por el segundo momento descentrado. Establecer esto en True puede ayudar con el entrenamiento, pero es un poco más caro en términos de cálculo y memoria. El valor predeterminado es False .
name Prefijo de nombre opcional para las operaciones creadas al aplicar degradados. El valor predeterminado es "RMSprop".
**kwargs argumentos de palabras clave. Permitido ser { clipnorm , clipvalue , lr , decay }. clipnorm es recortar gradientes por norma; clipvalue son gradientes de recorte por valor, el decay se incluye para compatibilidad con versiones anteriores para permitir el decaimiento inverso en el tiempo de la tasa de aprendizaje. lr se incluye para compatibilidad con versiones anteriores, se recomienda usar learning_rate lugar.

iterations Variable. El número de pasos de entrenamiento que ha ejecutado este Optimizador.
weights Devuelve variables de este Optimizador en función del pedido creado.

Métodos

add_slot

Ver fuente

Agregue una nueva variable de ranura para var .

add_weight

Ver fuente

apply_gradients

Ver fuente

Aplicar degradados a las variables.

Esta es la segunda parte de minimize() . Devuelve una Operation que aplica gradientes.

El método suma gradientes de todas las réplicas en presencia de tf.distribute.Strategy de forma predeterminada. Puede agregar gradientes usted mismo pasando experimental_aggregate_gradients=False .

Ejemplo:

grads = tape.gradient(loss, vars)
grads = tf.distribute.get_replica_context().all_reduce('sum', grads)
# Processing aggregated gradients.
optimizer.apply_gradients(zip(grads, vars),
    experimental_aggregate_gradients=False)

Args
grads_and_vars Lista de pares (gradiente, variable).
name Nombre opcional para la operación devuelta. Por defecto, el nombre pasado al constructor Optimizer .
experimental_aggregate_gradients Ya sea para sumar gradientes de diferentes réplicas en presencia de tf.distribute.Strategy . Si es False, es responsabilidad del usuario agregar los degradados. Predeterminado a Verdadero.

Devoluciones
Una Operation que aplica los gradientes especificados. Las iterations se incrementarán automáticamente en 1.

Eleva
TypeError Si grads_and_vars tiene un formato incorrecto.
ValueError Si ninguna de las variables tiene gradientes.

from_config

Ver fuente

Crea un optimizador a partir de su configuración.

Este método e