VLFeat:vl_kmeans中特定数量的集群的ValueError

时间:2016-02-11 11:18:39

标签: python computer-vision vlfeat vlad-vector

我有一个大小为301 x 4096的数组,我想为此计算VLAD向量。

我尝试使用

进行量化
center, assignments = vlfeat.vl_kmeans(data,8)

但是会返回

  

ValueError:要解压缩的值太多

如果我将群集数量从8更改为2,则可以正常工作。 我也尝试了其他数字,但所有数字都返回了相同的ValueError。除了,当它设置为1时,它返回

  

ValueError:解包需要多于1个值

可能是因为它与我的数据中的样本数量有关吗?

1 个答案:

答案 0 :(得分:0)

Github上提供了VLFeat的这个非官方Python接口的来源。

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)