jax.scipy.signal.convolve#

jax.scipy.signal.convolve(in1, in2, mode='full', method='auto', precision=None)[原始碼]#

兩個 N 維陣列的卷積。

JAX 實作的 scipy.signal.convolve()

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

傳回:

包含卷積結果的陣列。

傳回型別:

Array

另請參閱

範例

一些 1D 卷積範例

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

完整卷積在邊緣使用隱含的零填充

>>> jax.scipy.signal.convolve(x, y, mode='full')
Array([1., 3., 6., 7., 6., 3., 1.], dtype=float32)

指定 mode = 'same' 傳回與第一個輸入尺寸相同的置中卷積

>>> jax.scipy.signal.convolve(x, y, mode='same')
Array([3., 6., 7., 6., 3.], dtype=float32)

指定 mode = 'valid' 僅傳回兩個陣列完全重疊的部分

>>> jax.scipy.signal.convolve(x, y, mode='valid')
Array([6., 7., 6.], dtype=float32)