SoftmaxCrossEntropyWithLogits

classe publique SoftmaxCrossEntropyWithLogits

Constructeurs Publics

Méthodes publiques

statique <T étend TNumber , U étend TNumber > Opérande <T>
softmaxCrossEntropyWithLogits (portée de portée , étiquettes d' opérande <U>, logits d'opérande <T>, axe int)
Calcule l'entropie croisée softmax entre logits et labels .

Méthodes héritées

Constructeurs Publics

public SoftmaxCrossEntropyWithLogits ()

Méthodes publiques

public static Operand <T> softmaxCrossEntropyWithLogits ( portée de portée , étiquettes d'opérande <U>, logits d'opérande <T>, axe int)

Calcule l'entropie croisée softmax entre logits et labels .

Mesure l'erreur de probabilité dans les tâches de classification discrètes dans lesquelles les classes s'excluent mutuellement (chaque entrée appartient exactement à une classe). Par exemple, chaque image CIFAR-10 est étiquetée avec une et une seule étiquette : une image peut être un chien ou un camion, mais pas les deux.

NOTE:

Même si les classes s’excluent mutuellement, leurs probabilités ne le sont pas nécessairement. Il suffit que chaque rangée d' labels soit une distribution de probabilité valide. Si ce n’est pas le cas, le calcul du gradient sera incorrect.

Si vous utilisez labels exclusives (dans lesquelles une et une seule classe est vraie à la fois), voir ERROR(/org.tensorflow.op.NnOps#sparseSoftmaxCrossEntropyWithLogits)

Utilisation :

   Operand<TFloat32> logits =
       tf.constant(new float[][] { {4.0F, 2.0F, 1.0F}, {0.0F, 5.0F, 1.0F} } );
   Operand<TFloat32> labels =
       tf.constant(new float[][] { {1.0F, 0.0F, 0.0F}, {0.0F, 0.8F, 0.2F} } );
   Operand<TFloat32> output =
       tf.nn.softmaxCrossEntropyWithLogits(labels, logits, -1);
   // output Shape = [2]
   // dataType = FLOAT (1)
   // values { 0.169846, 0.824745 }
 

La rétropropagation se produira à la fois dans logits et labels . Pour interdire la rétropropagation dans labels , transmettez les tenseurs d'étiquettes via tf.stopGradient avant de les transmettre à cette fonction.

Paramètres
portée portée actuelle
Étiquettes Chaque vecteur le long de la dimension de classe doit contenir une distribution de probabilité valide, par exemple dans le cas où les étiquettes ont la forme [batch_size, num_classes] , chaque ligne d' labels[i] doit être une distribution de probabilité valide.
logites Activations par étiquette, généralement une sortie linéaire. Ces énergies d'activation sont interprétées comme des probabilités logarithmiques non normalisées.
axe La dimension de classe. -1 est la dernière dimension.
Retour
  • la perte d'entropie croisée softmax. Son type est le même que logits et sa forme est la même que labels sauf qu'il n'a pas la dernière dimension des labels .