python – 使用sklearn GridSearchCV查找具有大数据的优化参数(1
我试图在
Python中使用sklearn中的GridSearchCV来查找SVM分类器的参数.训练数据的形状为(15750,65536)(15750个样本,特征维度:65536).
使用默认设置一切正常!但是,如果我想使用并行处理选项,通过定义n_jobs我面临以下问题:数据被加载到内存中(在具有48 GB RAM的机器上,它占整个内存的大约14%),但它永远不会开始网格搜索/培训!在(h)顶部,过程状态为S(因此它基本上停止了!).它继续占用内存,但从未开始运行(CPU使用率保持为零!). 我为n_jobs尝试了不同的值,比如2,3-5(机器有8个核心).但没有运气! 我还应该提一下,我用相同数量的样本尝试相同的代码,比如1000个样本,而且一切都很好!然而,问题是,鉴于对于一个进程,数据只占机器内存的15%,为什么它不能在至少两个内核上运行,pre_dispatch = 2?然后它应占用大约30%的机器内存.但为什么这个过程刚刚停止?甚至没有内存错误? 这是完成工作的代码段(主要来自sklearn文档): sklearn版本:0.12.1和python版本:2.7.3 tuned_parameters = [{'kernel': ['rbf'],'gamma': [1e-3,1e-4],'C': [1,10,100,1000]},{'kernel': ['linear'],1000]}] clf = GridSearchCV(SVC(C=1),tuned_parameters,n_jobs=2,verbose=3,pre_dispatch=1) clf.fit(tr,tt,cv=3) 解决方法
您是否尝试过n_jobs = -1,它指示sklearn使用所有CPU?这个设置对我来说非常适合(尽管我的训练样本数量要少得多).
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |