HuberLoss¶
- class torch.nn.HuberLoss(reduction='mean', delta=1.0)[source][source]¶
创建一个标准,如果逐元素绝对误差低于 delta,则使用平方项;否则使用 delta 缩放的 L1 项。此损失结合了
L1Loss
和MSELoss
的优点;delta 缩放的 L1 区域使损失对异常值不如MSELoss
敏感,而 L2 区域在 0 附近提供了比L1Loss
更高的平滑度。有关更多信息,请参见 Huber 损失。对于大小为 的批次,未缩减的损失可以描述为
其中
如果 reduction 不是 none,则
注意
当 delta 设置为 1 时,此损失等效于
SmoothL1Loss
。通常,此损失与SmoothL1Loss
的区别在于 delta 系数(在 Smooth L1 中也称为 beta)。有关两种损失之间行为差异的更多讨论,请参见SmoothL1Loss
。- 参数
- 形状
输入: 其中 表示任意数量的维度。
目标: ,与输入形状相同。
输出: 标量。如果
reduction
是'none'
,则 ,与输入形状相同。