jax.scipy.signal.correlate2d#
- jax.scipy.signal.correlate2d(in1, in2, mode='full', boundary='fill', fillvalue=0, precision=None)[源]#
两个二维数组的互相关。
JAX 对
scipy.signal.correlate2d()
的实现。- 参数:
in1 (数组) – 互相关的左侧输入。必须满足
in1.ndim == 2
。in2 (数组) – 互相关的右侧输入。必须满足
in2.ndim == 2
。mode (str) –
控制输出的大小。可用操作包括
"full"
: (默认)输出输入的完整互相关。"same"
: 返回"full"
输出的居中部分,其大小与in1
相同。"valid"
: 返回"full"
输出中不依赖于数组边缘填充的部分。
boundary (str) – 仅支持
"fill"
。fillvalue (float) – 仅支持
0
。method –
控制计算方法。选项包括
"auto"
: (默认)总是使用"direct"
方法。"direct"
: 转换为jax.lax.conv_general_dilated()
。"fft"
: 通过快速傅里叶变换计算结果。
precision (PrecisionLike) – 指定计算精度。请参阅
jax.lax.Precision
以获取可用值的描述。
- 返回:
包含互相关结果的数组。
- 返回类型:
另请参阅
jax.numpy.correlate()
: 1D 互相关jax.scipy.signal.correlate()
: ND 互相关jax.scipy.signal.convolve()
: ND 卷积
示例
一些 2D 互相关示例
>>> x = jnp.array([[2, 1, 3], ... [1, 3, 1], ... [4, 1, 2]]) >>> y = jnp.array([[1, 3], ... [4, 2]])
完整的 2D 互相关在边缘使用隐式零填充
>>> jax.scipy.signal.correlate2d(x, y, mode='full') Array([[ 4., 10., 10., 12.], [ 8., 15., 24., 7.], [11., 28., 14., 9.], [12., 7., 7., 2.]], dtype=float32)
指定
mode = 'same'
返回一个居中的 2D 互相关,其大小与第一个输入相同>>> jax.scipy.signal.correlate2d(x, y, mode='same') Array([[15., 24., 7.], [28., 14., 9.], [ 7., 7., 2.]], dtype=float32)
指定
mode = 'valid'
仅返回两个数组完全重叠的 2D 互相关部分>>> jax.scipy.signal.correlate2d(x, y, mode='valid') Array([[15., 24.], [28., 14.]], dtype=float32)