megengine.functional.nn.square_loss

square_loss(pred, label, reduction='mean')[源代码]

计算预测值 \(x\) 和标签值 \(y\) 之间的均方误差(平方L2范数)。

均方误差可以表示为:

\[\ell(x, y) = mean\left( L \right)\]

式中,

\[L = \{l_1,\dots,l_N\}, \quad l_n = \left( x_n - y_n \right)^2,\]

\(x\)\(y\) 是任意形状的张量,各张量包含 \(N\) 个元素。 \(N\) 是批(batch)大小。

参数
  • pred (Tensor) – 从模型中预测的结果。

  • label (Tensor) – 用于比较的真实值。

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

返回类型

Tensor

返回

损失值。

形状:
  • pred : \((N, *)\) ,这里的 \(*\) 指任何附加的维度。

  • label: \((N, *)\). 与 pred 的形状相同

实际案例

import numpy as np
import megengine as mge
import megengine.functional as F

ipt = mge.tensor(np.array([3, 3, 3, 3]).astype(np.float32))
tgt = mge.tensor(np.array([2, 8, 6, 1]).astype(np.float32))
loss = F.nn.square_loss(ipt, tgt)
print(loss.numpy())

输出:

9.75