Constructeurs Publics
Méthodes publiques
statique <T étend TNumber > Opérande <T> | sigmoidCrossEntropyWithLogits ( Portée de la portée, étiquettes de l'opérande <T>, logits de l'opérande <T>) Calcule l'entropie croisée sigmoïde à partir logits . |
Méthodes héritées
Constructeurs Publics
public SigmoidCrossEntropyWithLogits ()
Méthodes publiques
public static Operand <T> sigmoidCrossEntropyWithLogits ( Portée de la portée, étiquettes de l'opérande <T>, logits de l'opérande <T>)
Calcule l'entropie croisée sigmoïde à partir logits
.
Mesure l'erreur de probabilité dans les tâches de classification discrètes dans lesquelles chaque classe est indépendante et non mutuellement exclusive. Par exemple, on pourrait effectuer une classification multi-étiquettes où une image peut contenir à la fois un éléphant et un chien.
Par souci de concision, soit x = logits
, z = labels
. La perte logistique en pseudo-code est
z * -log(sigmoid(x)) + (1 - z) * -log(1 - sigmoid(x)) = z * -log(1 / (1 + exp(-x))) + (1 - z) * -log(exp(-x) / (1 + exp(-x))) = z * log(1 + exp(-x)) + (1 - z) * (-log(exp(-x)) + log(1 + exp(-x))) = z * log(1 + exp(-x)) + (1 - z) * (x + log(1 + exp(-x)) = (1 - z) * x + log(1 + exp(-x)) = x - x * z + log(1 + exp(-x))
Pour x < 0
, pour éviter un débordement dans exp(-x)
, nous reformulons ce qui précède
x - x * z + log(1 + exp(-x)) = log(exp(x)) - x * z + log(1 + exp(-x)) = - x * z + log(1 + exp(x))
Par conséquent, pour garantir la stabilité et éviter les débordements, l’implémentation utilise cette formulation équivalente
max(x, 0) - x * z + log(1 + exp(-abs(x)))
les logits et labels
doivent avoir le même type et la même forme.
Paramètres
portée | La portée TensorFlow |
---|---|
étiquettes | les étiquettes |
logites | les logits de type float32 ou float64 |
Retours
- les pertes logistiques par composants.
Jetés
IllegalArgumentException | si les logits et les étiquettes n'ont pas la même forme |
---|