SoftmaxCrossEntropyWithLogits

classe pubblica SoftmaxCrossEntropyWithLogits

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 delle labels tranne per il fatto che non ha l'ultima dimensione delle labels .