megengine.functional.nn.hinge_loss

hinge_loss(pred, label, norm='L1', reduction='mean')[源代码]

计算支持向量机 SVM 中经常使用的 hinge loss。

hinge loss 可以表示为:

\[loss(x, y) = \frac{1}{N}\sum_i\sum_j(max(0, 1 - x_{ij}*y_{ij}))\]
参数
  • pred (Tensor) – 表示预测概率的输入张量,形为 (N,C)

  • label (Tensor) – 表示二分类标签的输入张量,形为 (N,C)

  • norm (str) – 指定计算损失时采用的范数,应为 “L1” 或 “L2” 。

  • reduction (str) – 计算输出的模式:none | mean | sum。默认值为:mean

返回类型

Tensor

返回

损失值。

实际案例

>>> pred = Tensor([[0.5, -0.5, 0.1], [-0.6, 0.7, 0.8]])
>>> label = Tensor([[1, -1, -1], [-1, 1, 1]])
>>> F.nn.hinge_loss(pred, label)
Tensor(1.5, device=xpux:0)
>>> F.nn.hinge_loss(pred, label, reduction="none")
Tensor([2.1 0.9], device=xpux:0)
>>> F.nn.hinge_loss(pred, label, reduction="sum")
Tensor(3.0, device=xpux:0)