Costruttori pubblici
Metodi pubblici
| statico <T estende TNumero > Operando <T> | sigmoidCrossEntropyWithLogits ( ambito ambito , etichette operando <T>, logit operando <T>) Calcola l'entropia incrociata del sigmoide dati logits . |
Metodi ereditati
Costruttori pubblici
pubblico SigmoidCrossEntropyWithLogits ()
Metodi pubblici
operando statico pubblico <T> sigmoidCrossEntropyWithLogits ( ambito ambito , etichette operando <T>, logit operando <T>)
Calcola l'entropia incrociata del sigmoide dati logits .
Misura l'errore di probabilità nei compiti di classificazione discreta in cui ciascuna classe è indipendente e non si esclude a vicenda. Ad esempio, è possibile eseguire una classificazione multietichetta in cui un'immagine può contenere contemporaneamente sia un elefante che un cane.
Per brevità, sia x = logits , z = labels . La perdita logistica nello pseudo-codice lo è
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))
Per x < 0 , per evitare overflow in exp(-x) , riformuliamo quanto sopra
x - x * z + log(1 + exp(-x)) = log(exp(x)) - x * z + log(1 + exp(-x)) = - x * z + log(1 + exp(x))
Pertanto, per garantire stabilità ed evitare overflow, l'implementazione utilizza questa formulazione equivalente
max(x, 0) - x * z + log(1 + exp(-abs(x)))
logit ed labels devono avere lo stesso tipo e forma.
Parametri
| ambito | L'ambito TensorFlow |
|---|---|
| etichette | le etichette |
| logits | i logit di tipo float32 o float64 |
Ritorni
- le perdite logistiche in termini di componenti.
Lancia
| IllegalArgumentException | se logits ed etichette non hanno la stessa forma |
|---|