Python 在谷歌云虚拟机上加速和优化scikit学习
我在Ubuntu 16.04的谷歌云虚拟机上运行Jupyter笔记本。虚拟机有8个CPU和32 GB内存(可以轻松增加)。 当我运行一些ML脚本时,我可以看到VM没有完全加载。 我注意到为Python 在谷歌云虚拟机上加速和优化scikit学习,python,machine-learning,scikit-learn,google-cloud-platform,virtual-machine,Python,Machine Learning,Scikit Learn,Google Cloud Platform,Virtual Machine,我在Ubuntu 16.04的谷歌云虚拟机上运行Jupyter笔记本。虚拟机有8个CPU和32 GB内存(可以轻松增加)。 当我运行一些ML脚本时,我可以看到VM没有完全加载。 我注意到为GridSearchCV添加n_jobs=16有帮助:虚拟机的加载率为100%,计算速度更快 有两个问题: 我应该寻找哪些scikit学习功能的其他参数来确保im使用VM的全部功能?例如,使用拟合、变换、预测方法 虚拟机中是否有其他参数(除了CPU和内存)需要更改以加快ML任务的速度 谢谢, Alex就sk
GridSearchCV
添加n_jobs=16
有帮助:虚拟机的加载率为100%,计算速度更快
有两个问题:
- 我应该寻找哪些scikit学习功能的其他参数来确保im使用VM的全部功能?例如,使用拟合、变换、预测方法
- 虚拟机中是否有其他参数(除了CPU和内存)需要更改以加快ML任务的速度
Alex就sklearn的并行化而言,一切都由
n_jobs
控制(很多都被底层的BLAS/LAPACK构建所隐藏;见下文!)
现在,在您的示例中有两个不同的级别:
- A:某些方法支持的算法级并行化
- e、 g
- 在算法级别激活:例如
clf=RandomForestClassifier(n_jobs=10)
- 粒度和效果很难读出文档:对于RandomForest,如果
n_jobs=n_jobs
n_作业
。但这并不是期望,这将有很大帮助
其他(更明显的硬件方面):
- SSD与HDD(如果学习有点IO限制;没有测试很难说)
- 使用可用的最快/实现,并确保其构建支持并行化(在这些例程中花费大量时间;BLAS示例:矩阵向量乘法;LAPACK示例:求解线性方程组)
- 安装/链接在numpy/scipy安装时完成;不学习
- 虽然我不确定第三方软件,如,和公司在使用中(由sklearn带来)会发生什么;哪个也会使用BLAS
- 我认为这些LIB带来了他们自己的简化BLAS代码,这意味着:我们不在乎
- 通常的候选者有:ATLAS、OpenBLAS、英特尔的MKL(直觉:从慢到快)等等
- 它的优点之一是它是开箱即用的
- 安装/链接在numpy/scipy安装时完成;不学习