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
以取得可用值的說明。
- 傳回:
包含卷積結果的陣列。
- 傳回型別:
另請參閱
jax.numpy.convolve()
:1D 卷積jax.scipy.signal.correlate()
:ND 相關性
範例
一些 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)