如何解决在 Pytorch 中使用一个热向量使用交叉熵损失的正确方法
我在网上搜索时遇到了很多建议,但我不明白正确的方法。 假设我的模型输出是 4 个神经元,目标标签是 1000 0100 0010 0001。
在 tensorflow 中,我在最后添加了一个 softmax 层,并将 model.fit 与 CategoricalCrossEntropy。
在 pytorch 中正确的方法是什么?
现在,我所做的(及其工作)是插入我的模型输出和目标一个热向量的 torch.argmax()。 例如模型输出为 (0.7,0.1,0.1),目标向量的 torch.argmax 为 0。 我正在激活 nn.CrossEntropyLoss()。
这是正确的做法吗?
解决方法
另一种方法是使用 BCELoss()
,它与交叉熵损失相同,除了预期范围为 [0,1] 的目标向量以及输出向量。这只是让您不必执行 torch.argmax()
步骤。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。