【发布时间】:2019-05-09 03:34:20
【问题描述】:
我不明白 n_jobs 是如何工作的:
data, labels = sklearn.datasets.make_blobs(n_samples=1000, n_features=416, centers=20)
k_means = sklearn.cluster.KMeans(n_clusters=10, max_iter=3, n_jobs=1).fit(data)
运行不到 1 秒
在 n_jobs = 2 的情况下,它的运行量几乎是原来的两倍
在 n_jobs = 8 的情况下,它是如此之长,它从未在我的计算机上结束......(我有 8 个内核)
我对并行化的工作原理有什么不明白的地方吗?
【问题讨论】:
-
这可能会回答你的问题:unix.stackexchange.com/questions/80424/…
-
好吧.. 不是真的,因为我有 8 个 cpu 核心,所以这不是问题。您能否重现此问题,还是仅在我的计算机上出现此问题?
-
你的 searn 和 joblib 版本是什么?
-
对于介于 1 到 8 之间的每个 n_jobs 值,上面的代码工作正常(在 1 秒内完成)。我有 4 个内核。我在 python 3.6 上使用最新版本的 scikit-learn。您需要检查您的版本
标签: python parallel-processing scikit-learn k-means