jax.scipy.cluster.vq.vq

目录

jax.scipy.cluster.vq.vq#

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

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

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,) 的浮点数组,包含每个观测值与最近码字之间的欧几里得距离。

返回类型:

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 ]