maxframe.tensor.allclose#

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

如果两个张量在容差范围内逐元素相等,则返回 True。

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

如果任一数组包含一个或多个 NaN,则返回 False。如果无穷大值在两个张量中位置相同且符号相同,则视为相等。

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

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

  • rtol (float) -- 相对容差参数(参见说明)。

  • atol (float) -- 绝对容差参数(参见说明)。

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

返回:

allclose -- 如果两个张量在给定容差范围内相等则返回 True;否则返回 False。

返回类型:

bool

参见

isclose, all, any, equal

备注

如果以下方程逐元素为 True,则 allclose 返回 True。

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

上述方程对 ab 不对称,因此在某些罕见情况下 allclose(a, b) 可能与 allclose(b, a) 不同。

ab 的比较使用标准广播机制,这意味着 ab 不必具有相同形状,allclose(a, b) 仍可返回 True。equal 也是如此,但 array_equal 则不然。

示例

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