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 以取得可用值的說明。

傳回值:

包含互相關結果的陣列。

傳回類型:

Array

另請參閱

範例

一些 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)