jax.scipy.signal.correlate2d#
- jax.scipy.signal.correlate2d(in1, in2, mode='full', boundary='fill', fillvalue=0, precision=None)[原始碼]#
兩個 2 維陣列的互相關。
JAX 版本的
scipy.signal.correlate2d()
。- 參數:
in1 (Array) – 互相關的左側輸入。必須具有
in1.ndim == 2
。in2 (Array) – 互相關的右側輸入。必須具有
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 | None) – 指定計算的精確度。請參閱
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)