공개 클래스 SoftmaxCrossEntropyWithLogits
공공 생성자
공개 방법
static <T는 TNumber를 확장하고 U는 TNumber를 확장합니다. > 피연산자 <T> | SoftmaxCrossEntropyWithLogits (범위 범위 , 피연산자 <U> 레이블, 피연산자 <T> 로지트, int 축) logits 와 labels 간의 소프트맥스 교차 엔트로피를 계산합니다. |
상속된 메서드
공공 생성자
공개 SoftmaxCrossEntropyWithLogits ()
공개 방법
공개 정적 피연산자 <T> SoftmaxCrossEntropyWithLogits ( 범위 범위, 피연산자 <U> 레이블, 피연산자 <T> 로지트, int 축)
logits
와 labels
간의 소프트맥스 교차 엔트로피를 계산합니다.
클래스가 상호 배타적인(각 항목이 정확히 하나의 클래스에 속함) 개별 분류 작업에서 확률 오류를 측정합니다. 예를 들어, 각 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 }
역전파는 logits
와 labels
모두에서 발생합니다. labels
로의 역전파를 허용하지 않으려면 이 함수에 공급하기 전에 tf.stopGradient
통해 레이블 텐서를 전달하세요.
매개변수
범위 | 현재 범위 |
---|---|
라벨 | 클래스 차원의 각 벡터는 유효한 확률 분포를 유지해야 합니다. 예를 들어 레이블이 [batch_size, num_classes] 모양인 경우 labels[i] 의 각 행은 유효한 확률 분포여야 합니다. |
로짓 | 레이블별 활성화, 일반적으로 선형 출력입니다. 이러한 활성화 에너지는 정규화되지 않은 로그 확률로 해석됩니다. |
중심선 | 클래스 차원. -1은 마지막 차원입니다. |
보고
- 소프트맥스 교차 엔트로피 손실. 유형은
logits
와 동일하고 모양은labels
의 마지막 차원이 없다는 점을 제외하면labels
과 동일합니다.