njobs的问题

来源:2-18 实战sklearn超参数搜索

O_O_似水流年_O_O

2019-06-13

老师,我之前看过一门课,讲的是使用交叉验证网格搜索的时候,那边的njob的参数代表使用电脑的几个核,如果是-1代表的是全部启用CPU的所有核。
经过测试,在启用1个核和2个核的速度的确能提高,理论上是有2倍的效率,实际上只有1点几倍的效率。
详细的如图
图片描述
上图是采用n-jobs=-1也就是启用cpu所有核使用的时间是2.6分钟
图片描述
上图是使用n_jobs=1使用一个CPU核使用的时间是将近4分钟

写回答

1回答

正十七

2019-06-13

是的,你说的没错。不过普通的scikit模型把n_jobs设为大于1的值可以成功,但对于tensorflow的模型来说,把n_jobs设为大于1的数的时候会遇到一个job不能被序列化的问题。我还没有找到解决方案,怀疑是tensorflow的bug。后面如果解决的话会更新视频。

0
1
weixin_慕设计2595873
n_jobs设为大于1的话至少得多卡或者多机吧?否则的话会有显卡占用问题。另外这里job不能序列化应该是模型序列化的问题,https://shimo.im/docs/jyTdieZIXr0MGzEW/ 这是我之前备份的一份关于keras模型序列化的方法,老师可以看一下
2019-07-02
共1条回复

Google老师亲授 TensorFlow2.0 入门到进阶

Tensorflow2.0实战—以实战促理论的方式学习深度学习

1849 学习 · 896 问题

查看课程