mindspore.ops.approximate_equal
- mindspore.ops.approximate_equal(x, y, tolerance=1e-5)[源代码]
逐元素计算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}\]tolerance 为相等的两元素间最大偏差。 输入 x 和 y 会通过隐式数据类型转换使数据类型保持一致。如果数据类型不同,低精度的数据类型会被自动转换到高精度的数据类型。
- 参数:
x (Tensor) - 输入Tensor,需为以下数据类型:float16,float32。shape: \((N,*)\) ,其中 \(*\) 表示任何数量的附加维度。
y (Tensor) - 输入Tensor,shape与数据类型与 x 相同。
tolerance (float) - 两元素可被视为相等的最大偏差。默认值:
1e-5
。
- 返回:
Tensor,shape与 x 相同,bool类型。
- 异常:
TypeError - tolerance 不是float类型。
RuntimeError - x 与 y 之间的类型转换不被支持。
- 支持平台:
Ascend
GPU
CPU
样例:
>>> import numpy as np >>> from mindspore import Tensor, ops >>> from mindspore import dtype as mstype >>> tol = 1.5 >>> x = Tensor(np.array([1, 2, 3]), mstype.float32) >>> y = Tensor(np.array([2, 4, 6]), mstype.float32) >>> output = ops.approximate_equal(Tensor(x), Tensor(y), tol) >>> print(output) [ True False False]