MultiLabelSoftMarginLoss¶
- class torch.nn.MultiLabelSoftMarginLoss(weight=None, size_average=None, reduce=None, reduction='mean')[source][source]¶
创建一个准则,基于最大熵优化多标签一对多损失,损失计算在形状为 的输入和形状为 的目标 之间。对于迷你批处理中的每个样本,计算公式如下:
其中 ,且 。
- 参数
weight (Tensor, optional) – 给定每个类别的手动重新缩放权重。如果给定,它必须是形状为 C 的 Tensor。否则,将被视为全为一。
size_average (bool, optional) – 已弃用(参见
reduction
)。默认情况下,损失按批次中的每个损失元素进行平均。请注意,对于某些损失,每个样本有多个元素。如果字段size_average
设置为False
,则损失将改为对每个迷你批次进行求和。当reduce
为False
时忽略。默认值:True
reduce (bool, optional) – 已弃用(参见
reduction
)。默认情况下,根据size_average
对每个迷你批次的观测值进行平均或求和。当reduce
为False
时,改为返回每个批次元素的损失,并忽略size_average
。默认值:True
reduction (str, optional) – 指定要应用于输出的归约(reduction)方法:
'none'
|'mean'
|'sum'
。'none'
:不应用归约;'mean'
:输出的总和将除以输出中的元素数量;'sum'
:对输出进行求和。注意:size_average
和reduce
正在被弃用,同时,指定这两个参数中的任何一个都将覆盖reduction
。默认值:'mean'
- 形状
输入:,其中 N 是批处理大小,C 是类别数量。
目标:,标签目标必须与输入的形状相同。
输出:标量。如果
reduction
为'none'
,则形状为 。