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

tf.keras.optimizers.SGD

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

descenso de gradiente (con movimiento) optimizador.

Hereda de: Optimizer

Se utiliza en los cuadernos

Se utiliza en la guía Se utiliza en los tutoriales

Regla de actualización para el parámetro w con gradiente g cuando momentum es 0:

 w = w - learning_rate * g
 

Actualizar regla cuando momentum es mayor que 0:

 velocity = momentum * velocity - learning_rate * g
w = w * velocity
 

Cuando nesterov=False , esta regla se convierte en:

 velocity = momentum * velocity - learning_rate * g
w = w + momentum * velocity - learning_rate * g
 

learning_rate Un Tensor , valor en puntos, o un horario que es un flotante tf.keras.optimizers.schedules.LearningRateSchedule , o una invocable que no tiene argumentos y devuelve el valor real de uso. La tasa de aprendizaje. El valor predeterminado es 0,01.
momentum flotador hiperparámetro> = 0 que acelera descenso de gradiente en las oscilaciones de dirección y amortigua pertinentes. El valor predeterminado es 0, es decir, vainilla pendiente de descenso.
nesterov booleano. Ya sea para aplicar Nesterov impulso. El valor predeterminado es False .
name Opcional prefijo de nombre para las operaciones creado al aplicar gradientes. Por defecto es "SGD" .
**kwargs argumentos de palabra clave. Permitido ser uno de "clipnorm" o "clipvalue" . "clipnorm" clips gradientes por norma (float); "clipvalue" (float) Clips gradientes por valor.

Uso:

opt = tf.keras.optimizers.SGD(learning_rate=0.1)
var = tf.Variable(1.0)
loss = lambda: (var ** 2)/2.0         # d(loss)/d(var1) = var1
step_count = opt.minimize(loss, [var]).numpy()
# Step is `- learning_rate * grad`
var.numpy()
0.9
opt = tf.keras.optimizers.SGD(learning_rate=0.1, momentum=0.9)
var = tf.Variable(1.0)
val0 = var.value()
loss = lambda: (var ** 2)/2.0         # d(loss)/d(var1) = var1
# First step is `- learning_rate * grad`
step_count = opt.minimize(loss, [var]).numpy()
val1 = var.value()
(val0 - val1).numpy()
0.1
# On later steps, step-size increases because of momentum
step_count = opt.minimize(loss, [var]).numpy()
val2 = var.value()
(val1 - val2).numpy()
0.18

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_we