"index N is out of bounds for axis 0 with size N" 当 运行 并行 KMeans 而顺序 KMeans 工作正常
"index N is out of bounds for axis 0 with size N" when running Parallel KMeans whereas sequential KMeans works fine
我正在尝试 运行 KMeans 并行使用 scikit-learn 实现,但我不断收到以下错误消息:
Traceback (most recent call last):
File "run_kmeans.py", line 114, in <module>
kmeans = KMeans(n_clusters=2048, n_jobs=-1).fit(descriptors)
File "/usr/local/lib/python2.7/dist-packages/sklearn/cluster/k_means_.py", line 889, in fit
return_n_iter=True)
File "/usr/local/lib/python2.7/dist-packages/sklearn/cluster/k_means_.py", line 362, in k_means
for seed in seeds)
File "/usr/local/lib/python2.7/dist-packages/sklearn/externals/joblib/parallel.py", line 768, in __call__
self.retrieve()
File "/usr/local/lib/python2.7/dist-packages/sklearn/externals/joblib/parallel.py", line 719, in retrieve
raise exception
sklearn.externals.joblib.my_exceptions.JoblibIndexError: JoblibIndexError
_________________________________________________________________________
Multiprocessing exception:
..........................................................................
IndexError: index 11683 is out of bounds for axis 0 with size 11683
当我 运行 KMeans 与 n_jobs=1
时,即以顺序方式,我没有收到任何错误并且一切正常。但是 n_jobs=-1
我一直收到错误。
这是我使用的代码:
kmeans = KMeans(n_clusters=2048, n_jobs=-1).fit(descriptors)
descriptors
是一个形状为 (11683, 128)
.
的 numpy 数组
我做错了什么还是 KMeans 实现中的错误?
我应该怎么办(例如使用 BiniBatchKMeans
等)?
PS:我运行将它安装在 Ubuntu 16.04 64 位机器上,配备 4 Gb 内存和 Intel Core i7-4700HQ 2.40GHz
这个问题可以通过将输入数据转换为 float64 来解决,如 descriptors.astype(np.float64).
我正在尝试 运行 KMeans 并行使用 scikit-learn 实现,但我不断收到以下错误消息:
Traceback (most recent call last):
File "run_kmeans.py", line 114, in <module>
kmeans = KMeans(n_clusters=2048, n_jobs=-1).fit(descriptors)
File "/usr/local/lib/python2.7/dist-packages/sklearn/cluster/k_means_.py", line 889, in fit
return_n_iter=True)
File "/usr/local/lib/python2.7/dist-packages/sklearn/cluster/k_means_.py", line 362, in k_means
for seed in seeds)
File "/usr/local/lib/python2.7/dist-packages/sklearn/externals/joblib/parallel.py", line 768, in __call__
self.retrieve()
File "/usr/local/lib/python2.7/dist-packages/sklearn/externals/joblib/parallel.py", line 719, in retrieve
raise exception
sklearn.externals.joblib.my_exceptions.JoblibIndexError: JoblibIndexError
_________________________________________________________________________
Multiprocessing exception:
..........................................................................
IndexError: index 11683 is out of bounds for axis 0 with size 11683
当我 运行 KMeans 与 n_jobs=1
时,即以顺序方式,我没有收到任何错误并且一切正常。但是 n_jobs=-1
我一直收到错误。
这是我使用的代码:
kmeans = KMeans(n_clusters=2048, n_jobs=-1).fit(descriptors)
descriptors
是一个形状为 (11683, 128)
.
我做错了什么还是 KMeans 实现中的错误?
我应该怎么办(例如使用 BiniBatchKMeans
等)?
PS:我运行将它安装在 Ubuntu 16.04 64 位机器上,配备 4 Gb 内存和 Intel Core i7-4700HQ 2.40GHz
这个问题可以通过将输入数据转换为 float64 来解决,如 descriptors.astype(np.float64).