FilesLast commitLast update
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
README

MultilabelMarginLoss

产品支持情况

产品 是否支持
Ascend 950PR/Ascend 950DT √
Atlas A3 训练系列产品/Atlas A3 推理系列产品 √
Atlas A2 训练系列产品/Atlas A2 推理系列产品 √
Atlas 200I/500 A2 推理产品 ×
Atlas 推理系列产品 √
Atlas 训练系列产品 √

功能说明

  • 算子功能:计算输入x(预测分数)与target(多标签下标)之间的多标签间隔损失(multilabel margin loss),并输出is_target目标位掩码。

  • 计算公式:

    对每个样本n(类别数为C),设该样本的有效标签集合为T(target逐元素取值、遇首个-1终止;有效值即标签下标),当reduction为'none'时:

    loss[n]=1C∑j∈T∑i∉Tmax⁡(0, 1−(x[n,j]−x[n,i]))\text{loss}[n]=\frac{1}{C}\sum_{j\in T}\sum_{i\notin T}\max\bigl(0,\ 1-(x[n,j]-x[n,i])\bigr)

    当reduction为'mean'或'sum'时,对逐样本损失再做均值或求和归约。

    同时输出is_target:is_target[n,i] = 1(当i∈T)否则0,为target派生的0/1掩码。

    其中:

    • x:输入预测张量,shape [N,C](2D)或[C](1D)。
    • target:真实多标签下标,与x同shape,每行有效标签后以-1填充。
    • is_target:目标位掩码,与target同shape。

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
x 输入 公式中的`x`,预测分数张量。shape为`[N,C]`(2D)或`[C]`(1D)。空tensor仅支持`N`轴为空(`[0,C]`,要求`C≥1`,空进空出);`C=0`不支持(含`1/C`无意义,报`161002`)。 BFLOAT16、FLOAT16、FLOAT32 ND
target 输入 公式中的多标签下标,与`x`同shape,元素取值`[-1, C-1]`,`-1`为填充/终止符。 INT32 ND
y 输出 损失输出;`reduction=none`+2D为`[N]`,否则为标量`[1]`。 FLOAT16、BFLOAT16、FLOAT32(与`x`一致) ND
is_target 输出 目标位0/1掩码,与`target`同shape,掩码值由`target`派生(0/1)。dtype支持INT32或与`x`一致。 INT32,或与`x`一致(FLOAT16、BFLOAT16、FLOAT32) ND
reduction 属性 归约方式,支持`'none'`、`'mean'`、`'sum'`。 STRING -

约束说明

无。

调用说明

调用方式 样例代码 说明
aclnn接口 test_aclnn_multilabel_margin_loss.cpp 通过 aclnnMultilabelMarginLoss 接口方式调用MultilabelMarginLoss算子。
图模式(GE) test_geir_multilabel_margin_loss.cpp 通过GE图(is_target输出INT32)方式调用。