Scikit-learn 是否发布了 python GIL?

发布于 2024-12-04 10:56:05 字数 84 浏览 0 评论 0原文

我想在不同的线程中训练多个一类支持向量机。 有人知道 scikit 的 SVM 是否发布了 GIL 吗? 我在网上没有找到任何答案。

谢谢

I would like to train multiple one class SVMs in different threads.
Does anybody know if scikit's SVM releases the GIL?
I did not find any answers online.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

原来是傀儡 2024-12-11 10:56:06

不,scikit-learn 不会对 GIL 进行任何操作。相反,它使用 joblib 来实现所有并行性,从而生成多个进程来完成其工作。您可以使用自定义 joblib Parallel 构造来实现您想要的目标。

如果您打算在具有不同设置的同一数据集上训练多个分类器以找到最佳分类器,请考虑使用 GridSearchCV 类,它为您处理并行性。

No, scikit-learn does not play any tricks with the GIL. Instead, it uses joblib for all its parallelism, which spawns multiple processes to do its work. You can achieve what you want with a custom joblib Parallel construct.

If you intend to train multiple classifiers on the same dataset with different settings to find the optimal one, consider using the GridSearchCV class, which handles parallelism for you.

她如夕阳 2024-12-11 10:56:06

一些 sklearn Cython 类确实在性能关键部分内部发布了 GIL,例如 0.15 版本(将于 2014 年初发布)的决策树(例如在随机森林中使用)和 libsvm 包装器。

但这不是一般规则。如果您发现 sklearn 中的性能关键 cython 代码可以更改以发布 GIL,请随时发送拉取请求。

Some sklearn Cython classes do release the GIL internally on performance critical sections, for instance the decision trees (used in random forests for instance) as of 0.15 (to be released early 2014) and the libsvm wrappers do.

This is not the general rule though. If you identify performance critical cython code in sklearn that could be changed to release the GIL please feel free to send a pull request.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文