Aggiorna '*var' in base all'algoritmo RMSProp centrato.
L'algoritmo RMSProp centrato utilizza una stima del secondo momento centrato (cioè la varianza) per la normalizzazione, al contrario del normale RMSProp, che utilizza il secondo momento (non centrato). Questo spesso aiuta con la formazione, ma è leggermente più costoso in termini di calcolo e memoria.
Tieni presente che nell'implementazione densa di questo algoritmo, mg, ms e mom verranno aggiornati anche se il grad è zero, ma in questa implementazione sparsa, mg, ms e mom non verranno aggiornati nelle iterazioni durante le quali il grad è zero.
quadrato_medio = decadimento * quadrato_medio + (1 decadimento) * gradiente ** 2 grado_medio = decadimento * grado_medio + (1 decadimento) * gradiente
Delta = tasso_di_apprendimento * gradiente / sqrt(quadrato_medio + epsilon - grado_medio ** 2)
mg <- rho * mg_{t-1} + (1-rho) * grad ms <- rho * ms_{t-1} + (1-rho) * grad * grad mom <- momentum * mom_{t-1 } + lr * grad / sqrt(ms - mg * mg + epsilon) var <- var - mom
Classi nidificate
classe | ApplyCenteredRmsProp.Options | Attributi facoltativi per ApplyCenteredRmsProp |
Costanti
Corda | OP_NAME | Il nome di questa operazione, come noto al motore principale di TensorFlow |
Metodi pubblici
Uscita <T> | comeuscita () Restituisce l'handle simbolico del tensore. |
statico <T estende TType > ApplyCenteredRmsProp <T> | create ( Scope scope, Operando <T> var, Operando <T> mg, Operando <T> ms, Operando <T> mom, Operando <T> lr, Operando <T> rho, Operando <T> momentum, Operando <T > epsilon, Operando <T> grad, Opzioni... opzioni) Metodo factory per creare una classe che racchiude una nuova operazione ApplyCenteredRmsProp. |
Uscita <T> | fuori () Uguale a "var". |
ApplyCenteredRmsProp.Options statico | useLocking (useLocking booleano) |
Metodi ereditati
Costanti
Stringa finale statica pubblica OP_NAME
Il nome di questa operazione, come noto al motore principale di TensorFlow
Metodi pubblici
Uscita pubblica <T> asOutput ()
Restituisce l'handle simbolico del tensore.
Gli input per le operazioni TensorFlow sono output di un'altra operazione TensorFlow. Questo metodo viene utilizzato per ottenere un handle simbolico che rappresenta il calcolo dell'input.
public static ApplyCenteredRmsProp <T> create ( Scope scope, Operando <T> var, Operando <T> mg, Operando <T> ms, Operando <T> mom, Operando <T> lr, Operando <T> rho, Operando <T > momentum, Operando <T> epsilon, Operando <T> grad, Opzioni... opzioni)
Metodo factory per creare una classe che racchiude una nuova operazione ApplyCenteredRmsProp.
Parametri
scopo | ambito attuale |
---|---|
var | Dovrebbe provenire da una variabile(). |
mg | Dovrebbe provenire da una variabile(). |
SM | Dovrebbe provenire da una variabile(). |
mamma | Dovrebbe provenire da una variabile(). |
lr | Fattore di scala. Deve essere uno scalare. |
Rho | Tasso di decadimento. Deve essere uno scalare. |
quantità di moto | Scala della quantità di moto. Deve essere uno scalare. |
epsilon | Termine di cresta. Deve essere uno scalare. |
grado | Il gradiente. |
opzioni | trasporta valori di attributi opzionali |
ritorna
- una nuova istanza di ApplyCenteredRmsProp
public static ApplyCenteredRmsProp.Options useLocking (useLocking booleano)
Parametri
utilizzareBlocco | Se "True", l'aggiornamento dei tensori var, mg, ms e mom è protetto da un blocco; altrimenti il comportamento non è definito, ma può mostrare meno contesa. |
---|