jax.numpy.isclose

内容

jax.numpy.isclose#

jax.numpy.isclose(a, b, rtol=1e-05, atol=1e-08, equal_nan=False)[source]#

检查两个数组的元素是否在公差范围内近似相等。

JAX 实现 numpy.allclose().

本质上,此函数评估以下条件

\[|a - b| \le \mathtt{atol} + \mathtt{rtol} * |b|\]

jnp.inf in a 将被认为等于 jnp.inf in b.

参数:
  • a (ArrayLike) – 要比较的第一个输入数组。

  • b (ArrayLike) – 要比较的第二个输入数组。

  • rtol (ArrayLike) – 用于近似相等的相对公差。默认值 = 1e-05。

  • atol (ArrayLike) – 用于近似相等性的绝对容差。默认值为 1e-08。

  • equal_nan (bool) – 布尔值。如果为 True,则 a 中的 NaN 将被视为与 b 中的 NaN 相等。默认值为 False

返回值:

一个新的数组,包含布尔值,指示输入数组在指定容差范围内是否元素级近似相等。

返回类型:

数组

示例

>>> jnp.isclose(jnp.array([1e6, 2e6, jnp.inf]), jnp.array([1e6, 2e7, jnp.inf]))
Array([ True, False,  True], dtype=bool)
>>> jnp.isclose(jnp.array([1e6, 2e6, 3e6]),
...              jnp.array([1.00008e6, 2.00008e7, 3.00008e8]), rtol=1e3)
Array([ True,  True,  True], dtype=bool)
>>> jnp.isclose(jnp.array([1e6, 2e6, 3e6]),
...              jnp.array([1.00001e6, 2.00002e6, 3.00009e6]), atol=1e3)
Array([ True,  True,  True], dtype=bool)
>>> jnp.isclose(jnp.array([jnp.nan, 1, 2]),
...              jnp.array([jnp.nan, 1, 2]), equal_nan=True)
Array([ True,  True,  True], dtype=bool)