gpt4 book ai didi

python - 在 Google Cloud VM 上加速和优化 scikit-learn

转载 作者:行者123 更新时间:2023-11-30 08:59:02 24 4
gpt4 key购买 nike

我在 Ubuntu 16.04 上的 Google Cloud VM 上运行 Jupyter Notebook。 VM 具有 8 个 CPU 和 32 GB 内存(并且可以轻松增加)。当我运行一些 ML 脚本时,我可以看到 VM 未完全加载。我注意到为 GridSearchCV 添加 n_jobs = 16 会有所帮助:虚拟机已 100% 加载,计算速度更快。

有两个问题:

  • 我应该寻找哪些 scikit learn 函数的其他参数来确保我充分利用虚拟机的功能?例如使用拟合、变换、预测方法。
  • 为了加速机器学习任务,我是否应该更改 VM 中的任何其他参数(除了 CPU 和内存)?

谢谢,亚历克斯

最佳答案

就sklearn的并行化而言,一切都由n_jobs控制(底层 BLAS/LAPACK 构建隐藏了很多内容;见下文!)。

现在您的示例中有两个不同的级别:

  • A:某些方法支持的算法级别并行化
    • 例如RandomForestClassifier
    • 在算法级别激活:例如clf = RandomForestClassifier(n_jobs=10)
    • 粒度和效果很难读出文档:对于 RandomForest,如果 n_jobs <= n_estimators ,您可以获得近线性加速。 (因为每个估计器都可以独立于其他估计器而被触及!)
  • B:某些外部 GridSearchCV 上的并行化
    • 在 GridSearch 级别激活:例如clf = GridSearchCV(clf_, parameters, n_jobs=10)
    • 这实现了 n_grid_search_trials >= n_jobs 的近线性加速

如果使用A(再次强调:并非所有内容都受支持),它也可用于预测和转换等方法。

在这两个候选者中,B(稍微)粒度较小,更适合 embarrassingly parallel 的情况。 。如果满足完全加速的条件(见上文);我只会在适合时使用这种方法。需要时,可以重置 n_jobs拟合后的估计器。但预计这不会有很大帮助。

其他(更明显的硬件事物):

  • SSD 与 HDD(如果学习在某种程度上受 IO 限制;未经测试很难判断)

另一件非常重要的事情:

  • 使用最快的BLAS/LAPACK可用的实现并确保它的构建支持并行化(在这些例程中花费了大量时间;BLAS-示例:矩阵向量乘法;LAPACK-示例:求解线性方程组)
    • 设置/链接在 numpy/scipy install 中完成;不学习
      • 虽然我不确定像 liblinear 这样的第三方软件到底会发生什么, libsvm和公司。正在使用(由 sklearn 带来);它也会使用 BLAS
      • 我认为这些库带来了自己的简化 BLAS 代码,指示 here这意味着:我们不在乎
    • 通常的候选者是:ATLAS、OpenBLAS、Intel 的 MKL(直觉:从慢到快)等等...
    • Anaconda-distribution 的优势之一事实上它带有 MKL开箱即用。

关于python - 在 Google Cloud VM 上加速和优化 scikit-learn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47968453/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com