【问题标题】:What should be the loss function for classification problem in pytorch if sigmoid is used in the output layer如果在输出层使用 sigmoid,pytorch 中分类问题的损失函数应该是多少
【发布时间】:2019-03-08 17:09:44
【问题描述】:

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

【问题讨论】:

标签: deep-learning classification pytorch


【解决方案1】:

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

关于目标函数NLLLoss - 负对数似然损失。它只是学习数据分布。所以,只要你在训练期间想要达到的目标就不是问题。

【讨论】:

    猜你喜欢
    • 2021-01-02
    • 2017-03-14
    • 2019-03-16
    • 2020-09-11
    • 2021-10-04
    • 2021-02-20
    • 2020-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多