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

返回

损失值。

实际案例

from megengine import tensor
import megengine.functional as F

pred = tensor([[0.5, -0.5, 0.1], [-0.6, 0.7, 0.8]], dtype="float32")
label = tensor([[1, -1, -1], [-1, 1, 1]], dtype="float32")
loss = F.nn.hinge_loss(pred, label)
print(loss.numpy())

输出:

1.5