
[PyTorch] Softmax + CrossEntropyLoss
·
코딩/이슈
Softmax 두번 쓰는 경우... 자칫 분석이 잘못 될 수도 있습니다..!문제다중 분류문제에서 보통 손실함수로 `CrossEnropyLoss`를 사용합니다. 이 함수는 보통 모델의 아웃풋 로짓값을 인풋으로 받게끔 구현되어있습니다. 만약 이 로짓에 `softmax`를 적용하여 `CrossEnropyLoss`에 집어넣으면 조금 왜곡된 결과가 나오겠죠..? 그런데 정말 조심해야하고 재미있는점은, 코드는 돌아가며 오류 경고가 뜨지않는 문제라는 점이고, 그 이상한 결과가 `아주 약간`만 이상해 보일 수 있다는 것입니다. 예를들어, 정상적으로 손실함수에 로짓을 집어넣은 모델의 `F1 macro score`가 `0.8` 이라하면, 위와같은 처리를 한 뒤의 결과는 `0.8`과 비슷하거나 별다른 문제가 없을 가능성이 ..