如果在输出层中使用了Sigmoid,那么在pytorch中分类问题的损失函数应该是什么?

时间:2018-10-03 12:57:06

标签: deep-learning classification pytorch

我正在尝试为二进制分类问题实现模型。到目前为止,我一直在使用softmax函数(在输出层)和torch.NLLLoss函数一起计算损耗。但是,现在我想在输出层使用S形函数(而不是softmax)。如果这样做,是否还应该将损失函数(更改为BCELoss或binary_cross_entropy)还是应该仍然使用torch.NLLLoss函数?

1 个答案:

答案 0 :(得分:0)

如果使用sigmoid函数,则只能进行二进制分类。不可能进行多类分类。这样做的原因是因为sigmoid函数总是返回一个介于0到1之间的值。因此,例如,可以将其阈值设为0.5,然后根据获得的值将其分为(或分类)为两类。

关于目标函数NLLLoss-负对数似然损失。它只是学习数据分布。因此,只要您在培训期间想要达到什么目的,这都不是问题。