首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >学习OpenMP libsvm

学习OpenMP libsvm
EN

Stack Overflow用户
提问于 2012-11-07 16:17:09
回答 3查看 2K关注 0票数 4

我正在使用scikit-学习SVC对一些数据进行分类。我想提高训练成绩。

clf = svm.SVC(cache_size=4000,probability=True,verbose=True)

由于sckikit-学习与libsvm和libsvm的接口使用OpenMp,所以我希望:

导出OMP_NUM_THREADS=16

会在多个核上运行。不幸的是,这并没有帮助。

有什么想法吗?

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-07 17:47:36

在当前的OpenMP绑定中没有支持libsvm在scikit-learn中。但是,如果sklearn.svm.SVC存在性能问题,那么很可能应该使用更可伸缩的模型。

如果你的数据是高维的,它可能是线性可分的。在这种情况下,建议您首先尝试一些简单的模型,比如朴素的bayes模型或sklearn.linear_model.Perceptron,因为这些模型的训练速度非常快。您还可以尝试使用比sklearn.linear_model.LogisticRegression更具有可伸缩性的liblinear来实现liblinearsklearn.svm.LinearSVC,尽管它们的内存效率低于scikit中的其他线性模型--学习。

如果您的数据不是线性可分的,您可以尝试sklearn.ensemble.ExtraTreesClassifier (调整n_estimators参数以权衡训练速度和预测精度)。

或者,您可以尝试使用scikit的RBFSampler转换器来近似RBF内核--学习+拟合输出的线性模型:

approximation.html

票数 8
EN

Stack Overflow用户

发布于 2014-11-19 22:43:50

如果您在scikit中使用交叉验证或网格搜索,那么您可以使用带有n_jobs参数的多个CPU:

代码语言:javascript
复制
GridSearchCV(..., n_jobs=-1)
cross_val_score(..., n_jobs=-1)

请注意,每个cross_val_score只需要一个作业,所以如果您的折叠数小于CPU,您仍然不会使用所有的处理能力。

LibSVM可以使用OpenMP,如果您可以编译它并按照LibSVM常见问题中的这些说明直接使用它。因此,您可以以LibSVM格式导出您的缩放数据(下面是关于如何实现的StackOverflow问题 ),并直接使用LibSVM来训练您的数据。但这只会有好处,如果你是网格搜索或想知道准确性的分数,据我所知,LibSVM创建的模型不能用于科学知识学习。

还有一个GPU加速版LibSVM,我已经尝试过了,而且速度非常快,但不是基于当前的LibSVM版本。我已经和开发者谈过了,他们说他们希望尽快发布一个新版本。

票数 2
EN

Stack Overflow用户

发布于 2016-01-15 21:52:32

虽然这个线程是一个year+的旧线程,我认为它是值得回答的。

我在scikit上编写了一个openmp支持补丁-为libsvm和liblinear (linearSVC)学习这里可用的- https://github.com/fidlr/sklearn-openmp

它基于libsvm关于如何添加OpenMP支持的FAQ,以及liblinear的多核实现。

只需克隆回购并运行sklearn build-openmp.sh来应用该修补程序并构建它。

定时OMP_NUM_THREADS=4 python plot_permutation_test_for_classification.py

  • 带有线性内核timinig的svmlib下降了2.3倍。
  • 径向基函数内核-相同。
  • 带4个线程的Liblinear被x1.6抛下

有关详细信息和使用信息可以在这里找到- http://fidlr.org/post/137303264732/scikit-learn-017-with-libsvm-openmp-support

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13273738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档