【发布时间】:2011-11-15 12:38:06
【问题描述】:
我想在不同的线程中训练多个一类 SVM。 有人知道 scikit 的 SVM 是否发布了 GIL? 我在网上没有找到任何答案。
谢谢
【问题讨论】:
标签: python multithreading parallel-processing machine-learning scikit-learn
我想在不同的线程中训练多个一类 SVM。 有人知道 scikit 的 SVM 是否发布了 GIL? 我在网上没有找到任何答案。
谢谢
【问题讨论】:
标签: python multithreading parallel-processing machine-learning scikit-learn
一些 sklearn Cython 类确实在内部发布了性能关键部分的 GIL,例如 0.15 的决策树(例如用于随机森林)(将于 2014 年初发布)和 libsvm 包装器。
但这不是一般规则。如果您发现 sklearn 中的性能关键 cython 代码可以更改以发布 GIL,请随时发送拉取请求。
【讨论】:
不,scikit-learn 不会与 GIL 玩任何技巧。相反,它使用joblib 来实现其所有并行性,这会产生多个进程来完成其工作。您可以使用自定义 joblib Parallel 构造来实现您想要的。
如果您打算在具有不同设置的同一数据集上训练多个分类器以找到最佳分类器,请考虑使用 GridSearchCV 类,它会为您处理并行性。
【讨论】:
from sklearn.base import clone,然后调用clone(estimator)。