Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

tf.keras.optimizers.SGD

Tensorflow 1 versione Visualizza sorgente su GitHub

discesa del gradiente (con slancio) ottimizzatore.

Eredita da: Optimizer

Utilizzato nei notebook

Utilizzato nella guida Utilizzato nelle esercitazioni

Regola di aggiornamento per il parametro w con gradiente g , quando momentum è 0:

 w = w - learning_rate * g
 

Aggiornare regola quando momentum è più grande di 0:

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

Quando nesterov=False , questa regola diventa:

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

learning_rate Un Tensor , valore del punto, o un programma che è un galleggiante tf.keras.optimizers.schedules.LearningRateSchedule , o un richiamabile che non accetta argomenti e restituisce il valore effettivo utilizzo. Il tasso di apprendimento. Default è 0.01.
momentum float iperparametro> = 0 che accelera discesa del gradiente nelle relative oscillazioni direzione e smorza. Default è 0, cioè, vaniglia gradiente discesa.
nesterov booleano. Se applicare Nesterov slancio. Il valore predefinito è False .
name prefisso del nome opzionale per le operazioni creato quando si applica gradienti. Il valore predefinito è "SGD" .
**kwargs argomenti chiave. Permesso di essere uno dei "clipnorm" o "clipvalue" . "clipnorm" (float) clip gradienti di norma; "clipvalue" (float) Clip gradienti per valore.

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

Riferimento:

name Una stringa non vuota. Il nome da usare per gli accumulatori creati per l'ottimizzatore.
**kwargs argomenti chiave. Permesso di essere { clipnorm , clipvalue , lr , decay }. clipnorm è gradienti clip norma; clipvalue è gradienti di clip di valore, decay è incluso per la compatibilità per consentire tempo dipendente decadimento del tasso di apprendimento. lr è incluso per compatibilità all'indietro, consigliato per uso learning_rate invece.

ValueError Se non è corretto nome.

iterations Variabile. Il numero di passaggi di formazione questo Optimizer ha funzionato.
weights Consegne variabili di questo Optimizer in base all'ordine creato.

metodi

add_slot

Vedi la fonte

Aggiungere una nuova variabile slot per var .

add_weight

Vedi la fonte

apply_gradients

Vedi la fonte

Applicare gradienti alle variabili.

Questa è la seconda parte di minimize() . Restituisce un Operation che si applica gradienti.

Il metodo riassume gradienti da tutte le repliche in presenza di tf.distribute.Strategy predefinita. È possibile aggregare i gradienti te stesso passando experimental_aggregate_gradients=False .

Esempio:

 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 Elenco dei (gradiente, variabile) coppie.
name nome opzionale per l'operazione restituito. Predefinito al nome passato alla Optimizer costruttore.
experimental_aggregate_gradients Sia per riassumere i gradienti di diverse repliche nel presense di tf.distribute.Strategy . Se False, è dell'utente responsabilità di aggregare le pendenze. Predefinito su True.

ritorna
Operation che applica i gradienti specificati. Le iterations saranno automaticamente incrementati di 1.

alza
TypeError Se grads_and_vars non è valido.
ValueError Se nessuna delle variabili hanno pendenze.

from_config

Vedi la fonte

Crea un ottimizzatore dalla sua configurazione.

Questo metodo è l'inverso di get_config , capace di istanziare stesso ottimizzatore dal dizionario config.

argomenti
config Un dizionario Python, tipicamente l'uscita di get_config.
custom_objects Un pitone nomi dizionario mappatura a ulteriori Python oggetti usati per creare questa ottimizzatore, come ad esempio una funzione utilizzata per un iperparametro.

ritorna
Un'istanza ottimizzatore.

get_config

Vedi la fonte

Restituisce la configurazione del ottimizzatore.

Un config ottimizzatore è un dizionario Python (serializzabile) contenente la configurazione di un ottimizzatore. Lo stesso può essere ottimizzatore reinstantiated successivamente (senza stato salvato) da questa configurazione.

ritorna
dizionario Python.

get_gradients

Vedi la fonte

Restituisce gradienti di loss rispetto alla params .

argomenti
loss tensore perdita.
params Elenco delle variabili.

ritorna
Elenco dei tensori di gradiente.

alza
ValueError Nel caso qualsiasi gradiente non può essere calcolato (ad esempio, se la funzione gradiente non implementato).

get_slot

Vedi la fonte

get_slot_names

Vedi la fonte

Un elenco di nomi per gli slot di questo Optimizer.

get_updates

Vedi la fonte

get_weights

Vedi la fonte

Restituisce i pesi attuali del ottimizzatore.

I pesi di un ottimizzatore sono lo stato (cioè variabil