maxframe.tensor.isclose#

maxframe.tensor.isclose(a, b, rtol=1e-05, atol=1e-08, equal_nan=False)[源代码]#

返回一个布尔张量,其中两个张量在给定容差内逐元素相等。

容差值为正数,通常是非常小的数。相对差值(rtol * abs(b))和绝对差值 atol 相加后与 ab 之间的绝对差值进行比较。

参数:
  • a (array_like) -- 要比较的输入张量。

  • b (array_like) -- 要比较的输入张量。

  • rtol (float) -- 相对容差参数(参见注释)。

  • atol (float) -- 绝对容差参数(参见注释)。

  • equal_nan (bool) -- 是否将 NaN 视为相等。如果为 True,则 a 中的 NaN 将在输出张量中被视为与 b 中的 NaN 相等。

返回:

y -- 返回一个布尔张量,表示 ab 在给定容差内相等的位置。如果 ab 都是标量,则返回单个布尔值。

返回类型:

array_like

参见

allclose

备注

对于有限值,isclose 使用以下等式来测试两个浮点值是否相等。

absolute(a - b) <= (atol + rtol * absolute(b))

上述等式在 ab 中不对称,因此在某些罕见情况下 isclose(a, b) 可能与 isclose(b, a) 不同。

示例

>>> import maxframe.tensor as mt
>>> mt.isclose([1e10,1e-7], [1.00001e10,1e-8]).execute()
array([True, False])
>>> mt.isclose([1e10,1e-8], [1.00001e10,1e-9]).execute()
array([True, True])
>>> mt.isclose([1e10,1e-8], [1.0001e10,1e-9]).execute()
array([False, True])
>>> mt.isclose([1.0, mt.nan], [1.0, mt.nan]).execute()
array([True, False])
>>> mt.isclose([1.0, mt.nan], [1.0, mt.nan], equal_nan=True).execute()
array([True, True])