mars.tensor.allclose#
- mars.tensor.allclose(a, b, rtol=1e-05, atol=1e-08, equal_nan=False)[来源]#
如果两个张量在容忍度范围内逐元素相等,则返回True。
容忍值是正值,通常是非常小的数字。 相对差异 (rtol * abs(b)) 和绝对差异 atol 被加在一起,以与 a 和 b 之间的绝对差异进行比较。
如果任一数组包含一个或多个 NaNs,则返回 False。 如果 Infs 在两个张量中位于同一位置并且符号相同,则视为相等。
- Parameters
- Returns
allclose – 如果两个张量在给定的容差内相等,则返回True;否则返回False。
- Return type
备注
如果以下方程逐元素为真,则 allclose 返回 真。
绝对值(a - b) <= (atol + rtol * 绝对值(b))
上述方程在 a 和 b 上并不对称,因此
allclose(a, b)在某些罕见情况下可能与allclose(b, a)不同。对a和b的比较使用标准广播,这意味着a和b不需要具有相同的形状,以便
allclose(a, b)的结果为True。equal也是这样,但array_equal则不是。示例
>>> import mars.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