jax.scipy.ndimage.map_coordinates#

jax.scipy.ndimage.map_coordinates(input, coordinates, order, mode='constant', cval=0.0)[原始碼]#

使用內插法將輸入陣列對應到新的座標。

scipy.ndimage.map_coordinates() 的 JAX 實作

給定輸入陣列和一組座標,此函數會傳回輸入陣列在這些座標的內插值。

參數:
  • input (Array | ndarray | bool | number | bool | int | float | complex) – 從中內插值的 N 維輸入陣列。

  • coordinates (Sequence[Array | ndarray | bool | number | bool | int | float | complex]) – 長度為 N 的陣列序列,指定評估內插值的座標

  • order (int) –

    內插法的階數。JAX 支援以下選項

    • 0:最近鄰

    • 1:線性

  • mode (str) – 根據給定的模式,輸入邊界外的點會被填滿。JAX 支援以下其中一種模式:('constant', 'nearest', 'mirror', 'wrap', 'reflect')。請注意,JAX 中的 'wrap' 模式的行為與 SciPy 中的 'grid-wrap' 模式相同,而 JAX 中的 'constant' 模式的行為與 SciPy 中的 'grid-constant' 模式相同。這種差異是由於 SciPy 中這些模式的先前錯誤 (scipy/scipy#2640) 所造成的,JAX 首先透過變更現有模式的行為來修正此錯誤,然後 SciPy 透過新增具有新名稱的模式來修正此錯誤,而不是為了向後相容性而修正現有模式。預設值為 ‘constant’。

  • cval (Array | ndarray | bool | number | bool | int | float | complex) – 如果 mode='constant',則用於輸入邊界外點的值。預設值為 0.0。

回傳值:

指定座標的內插值。

範例

>>> input = jnp.arange(12.0).reshape(3, 4)
>>> input
Array([[ 0.,  1.,  2.,  3.],
       [ 4.,  5.,  6.,  7.],
       [ 8.,  9., 10., 11.]], dtype=float32)
>>> coordinates = [jnp.array([0.5, 1.5]),
...                jnp.array([1.5, 2.5])]
>>> jax.scipy.ndimage.map_coordinates(input, coordinates, order=1)
Array([3.5, 8.5], dtype=float32)

注意

邊界附近的內插法與 scipy 函數不同,因為 JAX 修復了一個未解決的錯誤;請參閱 jax-ml/jax#11097。此函數根據 SciPy 的文件解釋 mode 參數,但不是根據 SciPy 的實作方式。