小编Sto*_*ase的帖子

在 Pytorch 上使用 sigmoid 输出进行交叉熵损失

I\xe2\x80\x99m 尝试修改 Yolo v1 以处理我的任务,每个对象只有 1 个类。(例如:一个对象不能同时是猫和狗)

\n

由于架构的原因(诸如本地化预测之类的其他输出必须使用回归),因此 sigmoid 被应用于模型的最后一个输出(f.sigmoid(nearly_last_output))。而对于分类,yolo 1 也使用 MSE 作为损失。但据我所知,与我想要的 one-hot 的交叉熵相比,MSE 有时表现不佳。

\n

具体来说:GT是这样的:(0 0 0 0 1假设我们总共只有5个类,每个类只有1个类,所以其中只有一个数字1,当然在这个例子中这是第5类)

\n

和分类部分的输出模型:0.1 0.1 0.9 0.2 0.1

\n

我发现一些建议使用nn.BCE/nn.BCEWithLogitsLoss但我想我应该在这里要求更正确的,因为我\xe2\x80\x99m 不擅长数学,也许我\xe2\x80\x99m 在某个地方错了,所以只是要求了解更多,并确定应该做什么我使用正确吗?

\n

python cross-entropy pytorch loss-function

2
推荐指数
1
解决办法
2446
查看次数

标签 统计

cross-entropy ×1

loss-function ×1

python ×1

pytorch ×1