jax.numpy.convolve#
- jax.numpy.convolve(a, v, mode='full', *, precision=None, preferred_element_type=None)[原始碼]#
兩個一維陣列的卷積。
JAX 版本的
numpy.convolve()
。一維陣列的卷積定義為
\[c_k = \sum_j a_{k - j} v_j\]- 參數:
a (ArrayLike) – 卷積的左手邊輸入。必須有
a.ndim == 1
。v (ArrayLike) – 卷積的右手邊輸入。必須有
v.ndim == 1
。mode (str) –
控制輸出的尺寸。可用的操作為
"full"
: (預設) 輸出輸入的完整卷積。"same"
: 傳回"full"
輸出的置中部分,其尺寸與a
相同。"valid"
: 傳回"full"
輸出中不依賴陣列邊緣填充的部分。
precision (PrecisionLike) – 指定計算的精確度。請參閱
jax.lax.Precision
以取得可用值的說明。preferred_element_type (DTypeLike | None) – 一種資料類型,指示將結果累積到該資料類型並傳回該資料類型的結果。預設值為
None
,表示輸入類型的預設累積類型。
- 傳回:
包含卷積結果的陣列。
- 傳回類型:
另請參閱
jax.numpy.correlate()
:1D 相關性
範例
一些 1D 卷積範例
>>> x = jnp.array([1, 2, 3, 2, 1]) >>> y = jnp.array([4, 1, 2])
jax.numpy.convolve
,預設情況下,傳回使用隱含零填充邊緣的完整卷積>>> jnp.convolve(x, y) Array([ 4., 9., 16., 15., 12., 5., 2.], dtype=float32)
指定
mode = 'same'
傳回與第一個輸入尺寸相同的置中卷積>>> jnp.convolve(x, y, mode='same') Array([ 9., 16., 15., 12., 5.], dtype=float32)
指定
mode = 'valid'
僅傳回兩個陣列完全重疊的部分>>> jnp.convolve(x, y, mode='valid') Array([16., 15., 12.], dtype=float32)
對於複數值輸入
>>> x1 = jnp.array([3+1j, 2, 4-3j]) >>> y1 = jnp.array([1, 2-3j, 4+5j]) >>> jnp.convolve(x1, y1) Array([ 3. +1.j, 11. -7.j, 15.+10.j, 7. -8.j, 31. +8.j], dtype=complex64)