Costruttori pubblici
Metodi pubblici
static <T estende TNumber , U estende TNumber > Operando <T> | softmaxCrossEntropyWithLogits ( ambito ambito, etichette operando <U>, logit operando <T>, asse int) Calcola l'entropia incrociata softmax tra logits ed labels . |
Metodi ereditati
Costruttori pubblici
pubblico SoftmaxCrossEntropyWithLogits ()
Metodi pubblici
operando statico pubblico <T> softmaxCrossEntropyWithLogits ( ambito ambito, etichette operando <U>, logit operando <T>, asse int)
Calcola l'entropia incrociata softmax tra logits
ed labels
.
Misura l'errore di probabilità nelle attività di classificazione discreta in cui le classi si escludono a vicenda (ogni voce è esattamente in una classe). Ad esempio, ogni immagine CIFAR-10 è etichettata con una ed una sola etichetta: un'immagine può essere un cane o un camion, ma non entrambi.
NOTA:
Sebbene le classi si escludano a vicenda, non è necessario che lo siano le loro probabilità. Tutto ciò che è richiesto è che ogni riga di labels
rappresenti una distribuzione di probabilità valida. Se non lo sono, il calcolo del gradiente risulterà errato.
Se si utilizzano labels
esclusive (in cui una e una sola classe alla volta è vera), vedere ERROR(/org.tensorflow.op.NnOps#sparseSoftmaxCrossEntropyWithLogits)
Utilizzo:
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 backpropagation avverrà sia nei logits
che labels
. Per impedire la propagazione all'indietro nelle labels
, passare i tensori delle etichette attraverso tf.stopGradient
prima di alimentarlo a questa funzione.
Parametri
ambito | ambito attuale |
---|---|
etichette | Ogni vettore lungo la dimensione della classe dovrebbe contenere una distribuzione di probabilità valida, ad esempio nel caso in cui le etichette siano di forma [batch_size, num_classes] , ogni riga di labels[i] deve essere una distribuzione di probabilità valida. |
logits | Attivazioni per etichetta, in genere un output lineare. Queste energie di attivazione vengono interpretate come probabilità logaritmiche non normalizzate. |
asse | La dimensione di classe. -1 è l'ultima dimensione. |
Ritorni
- la perdita di entropia incrociata di softmax. Il suo tipo è lo stesso
logits
e la sua forma è la stessa dellelabels
tranne per il fatto che non ha l'ultima dimensione dellelabels
.