SoftmaxCrossEntropyWithLogits

classe pública SoftmaxCrossEntropyWithLogits

Construtores Públicos

Métodos Públicos

estático <T estende TNumber , U estende TNumber > Operando <T>
softmaxCrossEntropyWithLogits (escopo do escopo , rótulos do operando <U>, logits do operando <T>, eixo interno)
Calcula a entropia cruzada softmax entre logits e labels .

Métodos herdados

Construtores Públicos

público SoftmaxCrossEntropyWithLogits ()

Métodos Públicos

public static Operand <T> softmaxCrossEntropyWithLogits (escopo do escopo , rótulos do operando <U>, logits do operando <T>, eixo int)

Calcula a entropia cruzada softmax entre logits e labels .

Mede o erro de probabilidade em tarefas de classificação discreta nas quais as classes são mutuamente exclusivas (cada entrada está em exatamente uma classe). Por exemplo, cada imagem CIFAR-10 é rotulada com um e apenas um rótulo: uma imagem pode ser um cachorro ou um caminhão, mas não ambos.

OBSERVAÇÃO:

Embora as classes sejam mutuamente exclusivas, suas probabilidades não precisam ser. Tudo o que é necessário é que cada linha de labels seja uma distribuição de probabilidade válida. Caso contrário, o cálculo do gradiente estará incorreto.

Se estiver usando labels exclusivos (em que uma e apenas uma classe é verdadeira por vez), consulte ERROR(/org.tensorflow.op.NnOps#sparseSoftmaxCrossEntropyWithLogits)

Uso:

   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 }
 

A retropropagação acontecerá tanto em logits quanto labels . Para impedir a retropropagação em labels , passe tensores de rótulo por meio de tf.stopGradient antes de alimentá-los para esta função.

Parâmetros
escopo escopo atual
rótulos Cada vetor ao longo da dimensão da classe deve conter uma distribuição de probabilidade válida, por exemplo, para o caso em que os rótulos têm a forma [batch_size, num_classes] , cada linha de labels[i] deve ser uma distribuição de probabilidade válida.
logitos Ativações por rótulo, normalmente uma saída linear. Essas energias de ativação são interpretadas como log de probabilidades não normalizadas.
eixo A dimensão da classe. -1 é a última dimensão.
Devoluções
  • a perda de entropia cruzada softmax. Seu tipo é o mesmo dos logits e seu formato é o mesmo dos labels , exceto que não possui a última dimensão dos labels .