【问题标题】:Scikit-learn machine learning models training using multiple CPUsScikit-learn 机器学习模型使用多个 CPU 进行训练
【发布时间】:2019-02-08 07:55:01
【问题描述】:

我想通过使用高端 EC2 实例来减少我的模型的训练时间。所以我尝试了c5.18xlarge 2 个 CPU 的实例,并运行了一些带有参数 n_jobs=-1 的模型,但我注意到只使用了一个 CPU:

我可以让 Scikit-learn 使用所有 CPU 吗?

【问题讨论】:

  • MWE...所有爵士乐...鉴于您的代表,您应该知道得更好。话虽如此,作为第一遍,我会make sure that you have compiled numpy with a linear algebra library that actually supports multi-core processing.
  • @PaulBrodersen 我有 numpy 链接到 BLAS,我希望你明白这不是关于多核处理,而是关于多 CPU 处理,我的第一个 CPU 可以很好地完成这项工作,但是第二个是空闲的。
  • 尝试在代码顶部添加import multiprocessing; multiprocessing.set_start_method('forkserver');,然后再运行或导入任何内容。它可以解决问题吗?
  • @QusaiAlothman 成功了!您能否将建议发布为答案,以便我将其标记为已解决?

标签: python amazon-web-services amazon-ec2 scikit-learn multiprocessing


【解决方案1】:

尝试添加:

import multiprocessing
multiprocessing.set_start_method('forkserver')

在代码的顶部,在运行或导入任何内容之前。这是 python 中多处理的一个众所周知的问题。

【讨论】:

    猜你喜欢
    • 2020-05-07
    • 2020-12-10
    • 2017-08-22
    • 1970-01-01
    • 2019-04-16
    • 2023-03-25
    • 2014-10-13
    • 2020-02-16
    • 1970-01-01
    相关资源
    最近更新 更多