【问题标题】:Target value with torch.nn.MultiLabelSoftMarginLoss should be 0 or -1?torch.nn.MultiLabelSoftMarginLoss 的目标值应该是 0 还是 -1?
【发布时间】:2021-07-02 21:31:50
【问题描述】:

我有一个多标签分类问题(单个样本可以同时分类为多个类)。

我想使用torch.nn.MultiLabelSoftMarginLoss,但我对这样写基本事实的文档感到困惑:

Target: (N, C)(N,C) , label targets padded by -1 ensuring same shape as the input.

这是否意味着目标处于一种热形式,但零替换为 -1?

假设我想为对象检测分类几个属性,例如:ManTallLong hair
我的第一张图片是一个长头发的高个子女人,我的目标是0 1 1还是-1 1 1?我无法理解为什么使用-1 而不是0

在互联网上很难找到示例,因为很多人将多标签任务误认为是多类分类并继续使用 BCELoss。

【问题讨论】:

    标签: python pytorch


    【解决方案1】:

    仔细看doc

    目标应该是{0, 1} 而不是-1。
    我不确定这个 -1 在做什么,它可能是为了“忽略”,但你是正确的,那里的文档不是很清楚。

    pytorch 的 github 上有一个 open issue 与此有关。随意贡献。

    【讨论】:

      猜你喜欢
      • 2011-11-07
      • 2023-03-02
      • 2013-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多