【发布时间】:2020-07-11 07:10:21
【问题描述】:
我是 Pytorch 的新手,我需要澄清一下多类分类。
我正在微调 DenseNet 神经网络,使其可以识别 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函数吗?
提前感谢您的帮助。
【问题讨论】:
标签: pytorch loss-function softmax cross-entropy