SoftmaxCrossEntropyWithLogits

공개 클래스 SoftmaxCrossEntropyWithLogits

공공 생성자

공개 방법

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

상속된 메서드

부울
같음 (개체 arg0)
마지막 수업<?>
getClass ()
정수
해시코드 ()
최종 무효
알림 ()
최종 무효
통지모두 ()
toString ()
최종 무효
대기 (long arg0, int arg1)
최종 무효
기다리세요 (긴 arg0)
최종 무효
기다리다 ()

공공 생성자

공개 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 과 동일합니다.