微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Pytorch 中使用一个热向量使用交叉熵损失的正确方法

如何解决在 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 举报,一经查实,本站将立刻删除。