我正在使用PyTorch Lightning(没有标签,而且我没有足够的声誉来创建一个)并且正面临多分类问题。
我的损失函数是torch.nn.CrossEntropyLoss
在内部应用softmax。所以,由于我不必处理这个问题,我的模型预测输出不是概率向量。现在,就代码而言,一个步骤如下所示:
def train_step(self, batch):
datapoints, labels = batch
y_out = self(datapoints)
loss = torch.nn.CrossEntropyLoss()(y_out, labels)
metric_output = calculate_some_metric(y_out, labels)
我现在的问题是,在计算指标之前是否需要手动应用 softmax。当然,这可能取决于指标本身是否有必要......但是是否有共同的指标可以产生影响?