jax.scipy.cluster.vq.vq#

jax.scipy.cluster.vq.vq(obs, code_book, check_finite=True)[原始碼]#

從程式碼簿將程式碼指派給一組觀察值。

scipy.cluster.vq.vq() 的 JAX 實作。

根據最近的歐幾里得距離,將 obs 中的每個觀察向量指派給 code_book 中的程式碼。

參數:
  • obs (ArrayLike) – 形狀為 (M, N) 的觀察向量陣列。每列代表單一觀察值。如果 obs 是一維的,則每個條目都被視為長度為 1 的觀察值。

  • code_book (ArrayLike) – 形狀為 (K, N) 的程式碼陣列。每列代表單一程式碼向量。如果 code_book 是一維的,則每個條目都被視為長度為 1 的程式碼。

  • check_finite (bool) – 在 JAX 中未使用

返回:

陣列元組 (code, dist)

  • code 是一個形狀為 (M,) 的整數陣列,包含 0 <= i < K 的索引,代表 code_book 中最接近 obs 中給定條目的條目。

  • dist 是一個形狀為 (M,) 的浮點數陣列,包含每個觀察值與最近程式碼之間的歐幾里得距離。

返回類型:

tuple[Array, Array]

範例

>>> obs = jnp.array([[1.1, 2.1, 3.1],
...                  [5.9, 4.8, 6.2]])
>>> code_book = jnp.array([[1., 2., 3.],
...                        [2., 3., 4.],
...                        [3., 4., 5.],
...                        [4., 5., 6.]])
>>> codes, distances = jax.scipy.cluster.vq.vq(obs, code_book)
>>> print(codes)
[0 3]
>>> print(distances)
[0.17320499 1.9209373 ]