如何解决张量的输出激活函数,用于多标签分类
我期望的标签是像tensor([[0,1,1],[1,0]])
这样的张量。
我模型的输出(请注意,我停止训练只是为了获取值,以便它们不能准确表示神经元的激活)也是一个tensor([[-10.6964,-13.8998,0.8348,-45.7040],[-10.3260,-13.8385,-9.2342,-5.3424]])
我在输出和标签上直接使用BCEWithLogitsLoss是错误的吗?在使用BCEWithLogitsLoss之前,是否需要将输出张量转换为类似于预期标签的二进制张量?我知道BCEWithLogitsLoss只是bceloss + Sigmoid激活。如何获得预期标签张量类型的值以及在这种情况下应使用什么损耗?
解决方法
对于多标签分类,BCELoss
是常见选择。 BCEWithLogitsLoss
直接在输出和标签上起作用,因为它期望将logit作为一个输入,并且将类(0或1)作为第二个输入。
您可以在此处找到有关此损失和预期标签张量的更多详细信息:
BCEWithLogitsLoss
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。