jax.scipy.cluster.vq.vq

内容

jax.scipy.cluster.vq.vq#

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

将代码本中的代码分配给一组观察值。

JAX 实现 scipy.cluster.vq.vq()

根据最近的欧氏距离,将 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,表示对于 obs 中的给定条目,在 code_book 中最接近的条目。

  • dist 是一个形状为 (M,) 的浮点数数组,包含每个观测值与其最近代码之间的欧几里得距离。

返回类型:

元组[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 ]