Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python VLFeat:vl_kmeans中特定数量集群的ValueError_Python_Computer Vision_Vlfeat_Vlad Vector - Fatal编程技术网

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

Python VLFeat:vl_kmeans中特定数量集群的ValueError,python,computer-vision,vlfeat,vlad-vector,Python,Computer Vision,Vlfeat,Vlad Vector,我有一个大小为301 x 4096的数组,我想计算它的VLAD向量 我试着用 center, assignments = vlfeat.vl_kmeans(data,8) 但这又回来了 ValueError:要解压缩的值太多 如果我将集群的数量从8更改为2,它就会工作。 我也尝试过其他数字,但它们都返回了相同的ValueError。但是,如果将其设置为1,则返回 ValueError:需要超过1个值才能解包 这可能与我的数据中的样本数量有关吗?VLFeat的这个非官方Python接口的源代码可

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

我试着用

center, assignments = vlfeat.vl_kmeans(data,8)
但这又回来了

ValueError:要解压缩的值太多

如果我将集群的数量从8更改为2,它就会工作。 我也尝试过其他数字,但它们都返回了相同的ValueError。但是,如果将其设置为1,则返回

ValueError:需要超过1个值才能解包


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

VLFeat的这个非官方Python接口的源代码可以在上找到

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

import numpy as np
import vlfeat
x = np.random.rand(10, 8)
centers = vlfeat.vl_kmeans(x, 3)
生成的
中心
阵列将具有形状
(3,8)
,即3个中心中的每个都有一个8维点

如果要获得每个输入的分配,必须将选项
quantize
传递给
vl_kmeans
函数。然后,该函数确实返回
中心
赋值
,并按预期工作:

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

它与函数返回的项目数有关。如果大于2,您将获得要解压缩的
太多值
,当小于2时,您将获得要解压缩的
多个值
+。它返回一个命名元组,它是一个包含您的内容的单个对象。@BurhanKhalid意味着它应该总是两个?那么如何指定其他数量的集群?