mindelec.common.L2

class mindelec.common.L2[source]

Calculates l2 metric.

Creates a criterion that measures the l2 metric between each element in the input: \(x\) and the target: \(y\).

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

Here \(y_i\) is the true value and \(x_i\) is the prediction.

Note

The method update must be called with the form update(y_pred, y).

Supported Platforms:

Ascend

Examples

>>> 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()[source]

clear the internal evaluation result.

eval()[source]

Computes l2 metric.

Returns

Float, the computed result.

update(*inputs)[source]

Updates the internal evaluation result \(\text{y_pred}\) and \(\text{y}\).

Parameters

inputs (Union[Tensor, list, numpy.array]) – y_pred and y can be retrieved from input. y_pred is the predicted value while y the ground truth value. They are used for calculating L2 where the shape of them are the same.

Raises
  • ValueError – if the length of inputs is not 2.

  • ValueError – if the shape of y_pred and y are not same.