jax.scipy.signal.correlate

内容

jax.scipy.signal.correlate#

jax.scipy.signal.correlate(in1, in2, mode='full', method='auto', precision=None)[source]#

两个 N 维数组的互相关。

JAX 实现的 scipy.signal.correlate().

参数:
  • in1 (Array) – 互相关的左侧输入。

  • in2 (Array) – 互相关的右侧输入。必须有 in1.ndim == in2.ndim

  • mode (str) –

    控制输出的大小。可用的操作是

    • "full": (默认) 输出输入的完整互相关。

    • "same": 返回 "full" 输出的居中部分,该部分与 in1 大小相同。

    • "valid": 返回 "full" 输出的一部分,该部分不依赖于数组边缘的填充。

  • method (str) –

    控制计算方法。选项包括:

    • "auto": (默认) 始终使用 "direct" 方法。

    • "direct": 降级到 jax.lax.conv_general_dilated()

    • "fft": 通过快速傅里叶变换计算结果。

  • precision (PrecisionLike | None) – 指定计算精度。有关可用值的说明,请参阅 jax.lax.Precision

返回值:

包含互相关结果的数组。

返回类型:

数组

参见

示例

一些一维相关示例

>>> x = jnp.array([1, 2, 3, 2, 1])
>>> y = jnp.array([1, 3, 2])

完整的 1D 相关使用边缘处的隐式零填充

>>> jax.scipy.signal.correlate(x, y, mode='full')
Array([ 2.,  7., 13., 15., 11.,  5.,  1.], dtype=float32)

指定 mode = 'same' 返回与第一个输入大小相同的中心 1D 相关

>>> jax.scipy.signal.correlate(x, y, mode='same')
Array([ 7., 13., 15., 11.,  5.], dtype=float32)

指定 mode = 'valid' 只返回两个数组完全重叠部分的 1D 相关

>>> jax.scipy.signal.correlate(x, y, mode='valid')
Array([13., 15., 11.], dtype=float32)