Mettez à jour '*var' selon l'algorithme RMSProp centré.
L'algorithme RMSProp centré utilise une estimation du deuxième moment centré (c'est-à-dire la variance) pour la normalisation, par opposition au RMSProp classique, qui utilise le deuxième moment (non centré). Cela facilite souvent la formation, mais coûte légèrement plus cher en termes de calcul et de mémoire.
Notez que dans une implémentation dense de cet algorithme, mg, ms et mom seront mis à jour même si le grade est nul, mais dans cette implémentation clairsemée, mg, ms et mom ne seront pas mis à jour dans les itérations pendant lesquelles le grade est nul.
Mean_square = décroissance * Mean_square + (1-décroissance) * gradient ** 2 Mean_grad = décroissance * Mean_grad + (1-décroissance) * gradient Delta = taux d'apprentissage * gradient / sqrt (mean_square + epsilon - Mean_grad ** 2)
$$ms <- rho * ms_{t-1} + (1-rho) * grad * grad$$$$mom <- momentum * mom_{t-1} + lr * grad / sqrt(ms + epsilon)$$$$var <- var - mom$$
Classes imbriquées
classe | SparseApplyCenteredRmsProp.Options | Attributs facultatifs pour SparseApplyCenteredRmsProp |
Constantes
Chaîne | OP_NAME | Le nom de cette opération, tel que connu par le moteur principal TensorFlow |
Méthodes publiques
Sortie <T> | comme Sortie () Renvoie le handle symbolique du tenseur. |
statique <T étend TType > SparseApplyCenteredRmsProp <T> | créer ( Scope scope, Opérande <T> var, Opérande <T> mg, Opérande <T> ms, Opérande <T> mom, Opérande <T> lr, Opérande <T> rho, Opérande <T> momentum, Opérande <T > epsilon, Opérande <T> grad, Opérande <? étend TNumber > indices, Options... options) Méthode d'usine pour créer une classe encapsulant une nouvelle opération SparseApplyCenteredRmsProp. |
Sortie <T> | dehors () Identique à "var". |
SparseApplyCenteredRmsProp.Options statique | useLocking (booléen useLocking) |
Méthodes héritées
Constantes
chaîne finale statique publique OP_NAME
Le nom de cette opération, tel que connu par le moteur principal TensorFlow
Méthodes publiques
sortie publique <T> asOutput ()
Renvoie le handle symbolique du tenseur.
Les entrées des opérations TensorFlow sont les sorties d'une autre opération TensorFlow. Cette méthode est utilisée pour obtenir un handle symbolique qui représente le calcul de l’entrée.
public static SparseApplyCenteredRmsProp <T> create ( Scope scope, Operand <T> var, Operand <T> mg, Operand <T> ms, Operand <T> mom, Operand <T> lr, Operand <T> rho, Operand <T > élan, Opérande <T> epsilon, Opérande <T> grad, Opérande <? étend TNumber > indices, Options... options)
Méthode d'usine pour créer une classe encapsulant une nouvelle opération SparseApplyCenteredRmsProp.
Paramètres
portée | portée actuelle |
---|---|
var | Doit provenir d'une variable (). |
mg | Doit provenir d'une variable (). |
MS | Doit provenir d'une variable (). |
maman | Doit provenir d'une variable (). |
mdr | Facteur d'échelle. Ça doit être un scalaire. |
rho | Taux de décomposition. Ça doit être un scalaire. |
épsilon | Terme de crête. Ça doit être un scalaire. |
diplômé | Le dégradé. |
indices | Un vecteur d'indices dans la première dimension de var, ms et mom. |
choix | porte des valeurs d'attributs facultatifs |
Retours
- une nouvelle instance de SparseApplyCenteredRmsProp
public statique SparseApplyCenteredRmsProp.Options useLocking (booléen useLocking)
Paramètres
utiliserVerrouillage | Si « True », la mise à jour des tenseurs var, mg, ms et mom est protégée par un verrou ; sinon, le comportement n'est pas défini, mais peut présenter moins de conflits. |
---|