mindelec.common.L2

class mindelec.common.L2[源代码]

计算L2度量。

创建输入中每个元素 \(x\) 和目标 \(y\) 之间的L2度量准则 。

\[\text{l2} = \sqrt {\sum_{i=1}^n \frac {(y_i - x_i)^2}{y_i^2}}\]

这里 \(y_i\) 是真值, \(x_i\) 是预测值。

说明

update 方法必须使用 update(y_pred, y) 的形式调用。

支持平台:

Ascend

样例:

>>> import numpy as np
>>> from mindelec.common import L2
>>> from mindspore import nn, Tensor
>>> import mindspore
...
>>> x = Tensor(np.array([0.1, 0.2, 0.6, 0.9]), mindspore.float32)
>>> y = Tensor(np.array([0.1, 0.25, 0.7, 0.9]), mindspore.float32)
>>> metric = L2()
>>> metric.clear()
>>> metric.update(x, y)
>>> result = metric.eval()
>>> print(result)
0.09543302997807275
clear()[源代码]

清理内部评估结果。

eval()[源代码]

计算L2度量。

返回:

Float,计算结果。

update(*inputs)[源代码]

更新内部评估结果 \(\text{y_pred}\)\(\text{y}\)。输入 text{y_pred}text{y} 用于计算L2。

参数:
  • inputs (Union[Tensor, list, numpy.array]) - text{y_pred}text{y} 是输入 input 中位置为0和1的元素,用于计算L2的预测值和真实值。两者有相同的shape。

异常:
  • ValueError - 如果输入的长度不是2。

  • ValueError - 如果 text{y_pred}text{y} 的不相同。