Softmax переводит logits в распределение вероятностей; CrossEntropyLoss уже включает log-softmax, поэтому двойной Softmax портит обучение.
Разбор
- Для метрик/вероятностей Softmax берут на инференсе.
- Numerically устойчивее работать в logit-пространстве.
log_softmax нужен для NLLLoss.
- Temperature scaling — отдельная калибровка.
Итог
Не дублируйте Softmax перед CrossEntropy — подавайте logits.