SoftmaxCrossEntropyWithLogits

공개 클래스 SoftmaxCrossEntropyWithLogits

공공 생성자

공개 방법

static <T는 TNumber를 확장하고 U는 TNumber를 확장합니다. > 피연산자 <T>
SoftmaxCrossEntropyWithLogits ( 범위 범위, 피연산자 <U> 레이블, 피연산자 <T> 로지트, int 축)
logitslabels 간의 소프트맥스 교차 엔트로피를 계산합니다.

상속된 메서드

공공 생성자

공개 SoftmaxCrossEntropyWithLogits ()

공개 방법

공개 정적 피연산자 <T> SoftmaxCrossEntropyWithLogits ( 범위 범위, 피연산자 <U> 레이블, 피연산자 <T> 로지트, int 축)

logitslabels 간의 소프트맥스 교차 엔트로피를 계산합니다.

클래스가 상호 배타적인(각 항목이 정확히 하나의 클래스에 속함) 개별 분류 작업에서 확률 오류를 측정합니다. 예를 들어, 각 CIFAR-10 이미지에는 단 하나의 레이블만 지정됩니다. 이미지는 개 또는 트럭일 수 있지만 둘 다일 수는 없습니다.

메모:

클래스는 상호 배타적이지만 확률은 반드시 그럴 필요는 없습니다. 필요한 것은 각 labels 행이 유효한 확률 분포라는 것입니다. 그렇지 않으면 그래디언트 계산이 올바르지 않게 됩니다.

독점 labels 사용하는 경우(한 번에 하나의 클래스만 true임) ERROR(/org.tensorflow.op.NnOps#sparseSoftmaxCrossEntropyWithLogits) 참조하세요.

사용법:

   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 }
 

역전파는 logitslabels 모두에서 발생합니다. labels 로의 역전파를 허용하지 않으려면 이 함수에 공급하기 전에 tf.stopGradient 통해 레이블 텐서를 전달하세요.

매개변수
범위 현재 범위
라벨 클래스 차원의 각 벡터는 유효한 확률 분포를 유지해야 합니다. 예를 들어 레이블이 [batch_size, num_classes] 모양인 경우 labels[i] 의 각 행은 유효한 확률 분포여야 합니다.
로짓 레이블별 활성화, 일반적으로 선형 출력입니다. 이러한 활성화 에너지는 정규화되지 않은 로그 확률로 해석됩니다.
중심선 클래스 차원. -1은 마지막 차원입니다.
보고
  • 소프트맥스 교차 엔트로피 손실. 유형은 logits 와 동일하고 모양은 labels 의 마지막 차원이 없다는 점을 제외하면 labels 동일합니다.