gpt4 book ai didi

python - 运行并行 KMeans 时为 "index N is out of bounds for axis 0 with size N",而顺序 KMeans 工作正常

转载 作者:行者123 更新时间:2023-11-30 22:43:58 26 4
gpt4 key购买 nike

我尝试使用 scikit-learn 实现并行运行 KMeans,但我不断收到以下错误消息:

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

当我使用 n_jobs=1 运行 KMeans 时,即以顺序方式运行时,我没有收到任何错误,并且一切正常。但是使用 n_jobs=-1 我不断收到错误。

这是我使用的代码:

kmeans = KMeans(n_clusters=2048, n_jobs=-1).fit(descriptors)

descriptors 是一个形状为 (11683, 128) 的 numpy 数组。

<小时/>

我做错了什么还是 KMeans 实现中的错误?

我该怎么办(例如使用 BiniBatchKMeans 等)?

PS:我在具有 4 Gb RAM 和 Intel Core i7-4700HQ 2.40GHz 的 Ubuntu 16.04 64 位计算机上运行它

最佳答案

可以通过将输入数据转换为 float64 来解决此问题,如描述符.astype(np.float64)。

https://github.com/scikit-learn/scikit-learn/issues/8583

关于python - 运行并行 KMeans 时为 "index N is out of bounds for axis 0 with size N",而顺序 KMeans 工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41635426/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com