CrossEntropyLoss vs NLLLoss ?
torch.nn.NLLLoss
- torch.nn.NLLLoss
- LogSoftmax layer 이후에 사용
- logsoftmax + nll_loss
(y_one_hot * - F.log_softmax(z, dim=1)).sum(dim=1).mean()
- 실제 one_hot vector에서 1인 부분만 계산됨.
CrossEntropyLoss
-
Note that this case is equivalent to the combination of LogSoftmax and NLLLOSS.
-
원래는 log_softmax를 취하지 않는 raw값이 들어가야하지만,
log_softmax(log_softmax(x)) = log_softmax(x) 이기 때문에 어떤 값이 들어와도 상관없다.
Leave a comment