Я новичок в Pytorch и мне нужно уточнить классификацию мультиклассов.
Я настраиваю нейронную сеть Dens eNet, чтобы она могла распознавать 3 разных класса.
Поскольку это проблема мультикласса, я должен заменить классификационный слой следующим образом:
kernelCount = self.densenet121.classifier.in_features
self.densenet121.classifier = nn.Sequential(nn.Linear(kernelCount, 3), nn.Softmax(dim=1))
и использовать CrossEntropyLoss в качестве функции потерь:
loss = torch.nn.CrossEntropyLoss(reduction='mean')
Читая на форуме Pytorch Я обнаружил, что CrossEntropyLoss применяет функцию softmax к выходу нейронной сети. Это правда? Должен ли я удалить функцию активации Softmax из структуры сети?
А как на этапе тестирования? Если он включен, мне нужно вызвать функцию softmax на выходе модели?
Заранее спасибо за помощь.