Arrête le calcul du gradient.
Lorsqu'elle est exécutée dans un graphique, cette opération génère son tenseur d'entrée tel quel.
Lors de la construction d'opérations pour calculer des gradients, cette opération empêche la prise en compte de la contribution de ses entrées. Normalement, le générateur de gradient ajoute des opérations à un graphique pour calculer les dérivées d'une « perte » spécifiée en recherchant de manière récursive les entrées qui ont contribué à son calcul. Si vous insérez cette opération dans le graphique, ses entrées sont masquées par le générateur de dégradé. Ils ne sont pas pris en compte pour le calcul des gradients.
Ceci est utile chaque fois que vous souhaitez calculer une valeur avec TensorFlow mais que vous devez prétendre que la valeur était une constante. Par exemple, la fonction softmax pour un vecteur x peut s'écrire
def softmax(x):
numerator = tf.exp(x)
denominator = tf.reduce_sum(numerator)
return numerator / denominator
def stable_softmax(x):
z = x - tf.reduce_max(x)
numerator = tf.exp(z)
denominator = tf.reduce_sum(numerator)
return numerator / denominator
tf.reduce_max(x)
(si les valeurs maximales ne sont pas uniques, le gradient pourrait se diriger vers la mauvaise entrée) et traiter cela comme une constante. Par conséquent, nous devrions écrire cela commedef stable_softmax(x):
z = x - tf.stop_gradient(tf.reduce_max(x))
numerator = tf.exp(z)
denominator = tf.reduce_sum(numerator)
return numerator / denominator
- L'algorithme EM où l' étape M ne devrait pas impliquer de rétropropagation via la sortie de l' étape E.
- Entraînement à divergence contrastée des machines Boltzmann où, lors de la différenciation de la fonction énergétique, l'entraînement ne doit pas se propager à travers le graphique qui a généré les échantillons à partir du modèle.
- Formation contradictoire, où aucun retour en arrière ne devrait se produire via le processus de génération d'exemples contradictoires.
Méthodes publiques
Sortie <T> | comme Sortie () Renvoie le handle symbolique d'un tenseur. |
statique <T> StopGradient <T> | |
Sortie <T> | sortir () |
Méthodes héritées
Méthodes publiques
sortie publique <T> asOutput ()
Renvoie le handle symbolique d'un 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 StopGradient <T> créer (portée de portée , entrée opérande <T>)
Méthode d'usine pour créer une classe encapsulant une nouvelle opération StopGradient.
Paramètres
portée | portée actuelle |
---|
Retours
- une nouvelle instance de StopGradient