VLFeat:ValueError对于vlèkmeans中特定数量的集群

2024-05-15 21:10:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个大小为301×4096的数组,我想计算它的VLAD向量。你知道吗

我试着用

center, assignments = vlfeat.vl_kmeans(data,8)

但这又回来了

ValueError: too many values to unpack

如果我把簇的数目从8改为2,就可以了。 我也试过其他数字,但都返回相同的ValueError。但是,如果将其设置为1,则返回

ValueError: need more than 1 value to unpack

这可能与我的数据中样本的数量有关吗?你知道吗


Tags: todata数组向量manytoocentervalues
1条回答
网友
1楼 · 发布于 2024-05-15 21:10:25

VLFeat的这个非官方Python接口的源代码可以在Github上找到。你知道吗

默认情况下,vl_kmeans函数只返回centers,因此只有一个值需要解包:

import numpy as np
import vlfeat
x = np.random.rand(10, 8)
centers = vlfeat.vl_kmeans(x, 3)

所得到的centers阵列将具有(3, 8)的形状,即3个中心中的每一个的8维点。你知道吗

如果要获得每个输入的赋值,必须将选项quantize传递给vl_kmeans函数。然后,函数返回centersassignment,这与预期的一样:

centers, assignments = vlfeat.vl_kmeans(x, 3, quantize=True)

相关问题 更多 >