gpt4 book ai didi

python - 使用 Python 和 Sklearn 加快计算速度

转载 作者:行者123 更新时间:2023-11-30 09:10:01 26 4
gpt4 key购买 nike

我正在写一篇关于机器学习分类任务的模型评估技术的论文,我正在使用一些 sklearn 模型,因为我可以编写大部分通用代码,因为我有很多不同的数据集。 Sklearns 模型输出的一部分是 predict_proba,其中进行概率估计。对于包含大量数据点的大型数据集,计算每个数据点的 predict_proba 需要很长时间。我加载了 htop 并看到 python 仅使用单个核心进行计算,因此我写出了以下函数:

from joblib import Parallel, delayed
import multiprocessing
num_cores = multiprocessing.cpu_count()

def makeprob(r,first,p2,firstm):
reshaped_r = first[r].reshape(1,p2)
probo = clf.predict_proba(reshaped_r)
probo = probo.max()
print('Currently at %(perc)s percent' % {'perc': (r/firstm)*100})
return probo

# using multiple cores to run the function 'makeprob'
results = Parallel(n_jobs=num_cores)(delayed(makeprob)(r,first,p2,firstm) for r in range(firstm))

现在我看到 htop 所有核心都被使用,并且速度显着提高,但没有我想要的那么快,如果有人知道加快速度的方法或指出我在正确的方向上,在这种情况下获得更快的计算增益,那就太好了。

最佳答案

性能损失取决于三个因素:

  1. 您的 Python 程序:确保数据集经过充分优化,不会过度使用 RAM(即,仅使用您需要的关键变量创建一个子集)
  2. Python 环境:如果您在 ipython (Jupyter) Notebook 中运行 Sk-learn,“多重处理”的运行速度将不会像在 Python 脚本中那样快。请参阅iPython for parallel computing 。 python 脚本会更快。
  3. Python 库:一些 Python 库本身就是为了使用计算机的所有资源而设计的。例如,使用 Tensorflow Tensorflow ,支持的设备类型是CPU和GPU(并且可以使用多个GPU)。

关于python - 使用 Python 和 Sklearn 加快计算速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41998770/

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