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

tf.keras.optimizers.Adamax

TensorFlow 1 versión Ver código fuente en GitHub

Optimizador que implementa el algoritmo Adamax.

Hereda de: Optimizer

Es una variante de Adán basado en la norma infinito. Los parámetros por defecto siguen las previstas en el papel. Adamax es a veces superior a Adam, especialmente en los modelos con incrustaciones.

inicialización:

 m = 0  # Initialize initial 1st moment vector
v = 0  # Initialize the exponentially weighted infinity norm
t = 0  # Initialize timestep
 

La regla de actualización para el parámetro w con gradiente g se describe al final de la sección 7.1 del documento:

 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)
 

De manera similar a Adam , se añade el épsilon de la estabilidad numérica (sobre todo para deshacerse de la división por cero cuando v_t == 0 ).

En contraste con Adam , la aplicación escasa de este algoritmo (se utiliza cuando el gradiente es un IndexedSlices objeto, típicamente debido a tf.gather o un incrustación de búsqueda en el pase hacia adelante) sólo actualiza rebanadas variables y correspondiente m_t , v_t términos cuando esa parte de la variable se utilizó en el paso delantero. Esto significa que el comportamiento es escaso contraste con el comportamiento densa (similar a algunas implementaciones de impulso que ignoran el impulso a no ser que se utilizó en realidad una rebanada variable).

learning_rate Un Tensor , valor en puntos, o un horario que es un flotante tf.keras.optimizers.schedules.LearningRateSchedule . La tasa de aprendizaje.
beta_1 Un valor flotante o un tensor de flotación constante. La tasa de decaimiento exponencial para el 1er estimaciones momento.
beta_2 Un valor flotante o un tensor de flotación constante. La tasa de decaimiento exponencial de la norma infinito ponderado exponencialmente.
epsilon Una pequeña constante para la estabilidad numérica.
name nombre opcional para las operaciones creado al aplicar gradientes. Por defecto es "Adamax" .
**kwargs argumentos de palabra clave. Permitido ser uno de "clipnorm" o "clipvalue" . "clipnorm" clips gradientes por norma (float); "clipvalue" (float) Clips gradientes por valor.

Referencia:

name Una cadena no vacía. El nombre que se utilizará para acumuladores creados para el optimizador.
**kwargs argumentos de palabra clave. Permitido ser { clipnorm , clipvalue , lr , decay }. clipnorm es gradientes de clip por norma; clipvalue es gradientes de clip de valor, decay se incluye por compatibilidad hacia atrás para permitir que la decadencia de tiempo dependiente de la tasa de aprendizaje. lr se incluye para la compatibilidad con versiones anteriores, recomienda el uso de learning_rate lugar.

ValueError Si está mal formado nombre.

iterations Variable. El número de los pasos de formación de este optimizador se ha ejecutado.
weights Devoluciones variables de este optimizador basado en el orden creado.

Métodos

add_slot

Ver fuente

Agregar una nueva variable ranura para var .

add_weight

Ver fuente

apply_gradients

Ver fuente

Aplicar gradientes a las variables.

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

El método resume gradientes de todas las réplicas en presencia de tf.distribute.Strategy por defecto. Puede agregarse gradientes 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 (gradiente, variables) pares.
name nombre opcional para la operación devuelto. Por defecto al nombre pasa al Optimizer constructor.
experimental_aggregate_gradients Ya sea para resumir los gradientes de diferentes réplicas en el presense de tf.distribute.Strategy . Si es falso, es responsabilidad de los usuarios agregar los gradientes. Por defecto en True.

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

aumentos
TypeError Si grads_and_vars está mal formado.
ValueError Si ninguna de las variables tiene gradientes.

from_config

Ver fuente

Crea un optimizador de su configuración.

Este método es el reverso de get_config , capaz de crear instancias de la misma optimizador del diccionario config.

argumentos
config Un diccionario de Python, normalmente la salida de GET_CONFIG.
custom_objects Un pitón nombres diccionario de mapeo a Python adicional objetos utilizados para crear esta optimizador, como una función que se utiliza para un hiperparámetro.

Devoluciones
Una instancia optimizador.

get_config

Ver fuente

Devuelve la configuración del optimizador.

Un config optimizador es un diccionario Python (serializable) que contiene la configuración de un optimizador. El mismo optimizador puede reinstantiated después (sin ningún estado guardado) a partir de esta configuración.

Devoluciones
diccionario de Python.

get_gradients

Ver fuente

Devuelve gradientes de loss con respecto al params .

argumentos
loss tensor de la pérdida.
params Lista de variables.

Devoluciones
Lista de los tensores de gradiente.

aumentos
ValueError En caso de que cualquier gradiente no se puede calcular (por ejemplo, si la función de gradiente no implementado).

get_slot

Ver fuente

get_slot_names

Ver fuente

Una lista de los nombres de las ranuras de este optimizador.

get_updates

Ver fuente

get_weights

Ver fuente

Devuelve los pesos actuales del optimizador.

Los pesos de un optimizador son su estado (es decir, variables). Esta función devuelve los valores de peso asociados con este optimizador como una lista de matrices NumPy. El primer valor es siempre cuentan las iteraciones del optimizador, seguido de las variables de estado del optimizador en el orden en que fueron creados. La lista devuelta a su vez puede ser utilizado para estado de carga en los optimizadores parametrizados de forma similar.

Por ejemplo, el optimizador RMSprop para este modelo simple devuelve una lista de tres values-- el recuento de iteración, seguido por el valor de la raíz--cuadrado medio del núcleo y el sesgo de la capa densa única:

opt = tf.keras.optimizers.RMSprop()
m = tf.keras.models.Sequential([tf.keras.layers.Dense(10)])
m.compile(opt, loss='mse')
data = np.arange(100).reshape(5, 20)
labels = np.zeros(5)
print('Training'); results = m.fit(data, labels)
Training ...
len(opt.get_weights())
3

Devoluciones
los valores de los pesos como una lista de matrices numpy.

minimize

Ver fuente

Reducir al mínimo loss de actualización var_list .

Este método simplemente calcula gradiente usando tf.GradientTape y llamadas