mindspore.Tensor.approximate_equal

mindspore.Tensor.approximate_equal(y, tolerance=1e-05)[源代码]

逐元素计算abs(x-y),如果小于tolerance则为True,否则为False。

\[\begin{split}out_i = \begin{cases} & \text{ if } \left | x_{i} - y_{i} \right | < \text{tolerance},\ \ True \\ & \text{ if } \left | x_{i} - y_{i} \right | \ge \text{tolerance},\ \ False \end{cases}\end{split}\]

x 为当前Tensor。 tolerance 为相等的两元素间最大偏差。 xy 会通过隐式数据类型转换使数据类型保持一致。如果数据类型不同,低精度的数据类型会被自动转换到高精度的数据类型。

参数:
  • y (Tensor) - 输入Tensor,shape与数据类型和当前Tensor相同。

  • tolerance (float) - 两元素可被视为相等的最大偏差。默认值:1e-05。

返回:

Tensor,shape与当前Tensor相同,bool类型。

异常:
  • TypeError - tolerance 不是float类型。

  • RuntimeError - variablevalue 之间的类型转换不被支持。

支持平台:

Ascend GPU CPU

样例:

>>> from mindspore.common import dtype as mstype
>>> tol = 2.
>>> x = Tensor(np.array([1, 2, 3]), mstype.float32)
>>> y = Tensor(np.array([2, 4, 6]), mstype.float32)
>>> output = Tensor(x).approximate_equal(Tensor(y), tol)
>>> print(output)
[ True  False  False]