Calcule la perte de divergence Kullback-Leibler entre les étiquettes et les prédictions.
loss = labels * log(labels / predictions)
Utilisation autonome :
Operand<TFloat32> labels = tf.constant(new float[][] { {0.f, 1.f}, {0.f, 0.f} }); Operand<TFloat32> predictions = tf.constant(new float[][] { {0.6f, 0.4f}, {0.4f, 0.6f} }); KLDivergence kld = new KLDivergence(tf); Operand<TFloat32> result = kld.call(labels, predictions); // produces 0.458
Appel avec le poids de l'échantillon :
Operand<TFloat32> sampleWeight = tf.constant(new float[] {0.8f, 0.2f}); Operand<TFloat32> result = kld.call(labels, predictions, sampleWeight); // produces 0.366f
Utilisation du type de réduction SUM
:
KLDivergence kld = new KLDivergence(tf, Reduction.SUM); Operand<TFloat32> result = kld.call(labels, predictions); // produces 0.916f
Utilisation du type de réduction NONE
:
KLDivergence kld = new KLDivergence(tf, Reduction.NONE); Operand<TFloat32> result = kld.call(labels, predictions); // produces [0.916f, -3.08e-06f]
Voir aussi
Champs hérités
Constructeurs Publics
KLDivergence (Ops tf) Crée une perte de divergence Kullback Leibler en utilisant getSimpleName() comme nom de perte et une réduction de perte de REDUCTION_DEFAULT | |
KLDivergence (Ops tf, Réduction réduction) Crée une perte de perte de divergence Kullback Leibler en utilisant getSimpleName() comme nom de perte | |
KLDivergence (Ops tf, nom de chaîne, réduction de réduction ) Crée une perte de divergence Kullback Leibler |
Méthodes publiques
<T étend TNumber > Opérande <T> |
Méthodes héritées
Constructeurs Publics
KLDivergence publique (Ops tf)
Crée une perte de divergence Kullback Leibler en utilisant getSimpleName()
comme nom de perte et une réduction de perte de REDUCTION_DEFAULT
Paramètres
tf | les opérations TensorFlow |
---|
KLDivergence publique (Ops tf, Réduction réduction)
Crée une perte de perte de divergence Kullback Leibler en utilisant getSimpleName()
comme nom de perte
Paramètres
tf | les opérations TensorFlow |
---|---|
réduction | Type de réduction à appliquer sur le sinistre. |
public KLDivergence (Ops tf, nom de chaîne, réduction de réduction )
Crée une perte de divergence Kullback Leibler
Paramètres
tf | les opérations TensorFlow |
---|---|
nom | le nom de la perte |
réduction | Type de réduction à appliquer sur le sinistre. |
Méthodes publiques
appel public Operand <T> ( Operand <? extends TNumber > labels, Operand <T> prédictions, Operand <T> sampleWeights)
Génère un opérande qui calcule la perte.
Paramètres
étiquettes | les valeurs ou étiquettes de vérité |
---|---|
prédictions | les prédictions |
exemples de poids | sampleWeights facultatif agit comme un coefficient pour la perte. Si un scalaire est fourni, alors la perte est simplement adaptée à la valeur donnée. Si SampleWeights est un tenseur de taille [batch_size], alors la perte totale pour chaque échantillon du lot est redimensionnée par l'élément correspondant dans le vecteur SampleWeights. Si la forme de SampleWeights est [batch_size, d0, .. dN-1] (ou peut être diffusée vers cette forme), alors chaque élément de perte de prédictions est mis à l'échelle par la valeur correspondante de SampleWeights. (Remarque sur dN-1 : toutes les fonctions de perte sont réduites d'une dimension, généralement axis=-1.) |
Retours
- la perte