提问者:小点点

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


我通过在线搜索遇到了很多建议,但我不明白正确的方法。假设我的模型输出是4个神经元,目标标签是1000 0100 0010 0001。

在TensorFlow中,我在末尾添加了一个softmax层,并model.fit分类交叉熵。

在pytorch中正确的方法是什么?

现在,我所做的(及其工作)是插入我的模型输出和目标一个热向量的torch. argmax()。例如,模型输出是(0.7,0.1,0.1,0.1),目标向量的torch.argmax是0。在这一点上,我激活了nn.CrossEntropyLoss()。

这是正确的方法吗?


共1个答案

匿名用户

另一种方法是使用BCELoss(),这与交叉熵损失相同,只是需要范围[0,1]内的目标向量以及输出向量。这只是节省了您执行torch. argmax()步骤的时间。