1

我正在使用 skopt (scikit-optimize) 包,使用 ask-tell 语法。我在 Windows 机器上使用 python 3.7 ask 函数调用需要很长时间(第一次调用 ~1 分钟,然后每次迭代增加 1 分钟,所以最终多达 20 分钟)。有没有办法并行化这个调用(不是我已经并行化的成本函数评估,而是 ask 函数)?我有一台 40 核的机器,还有一个很好的 GPU,两者都可以使用。

谢谢马克

回复杰罗姆:感谢您的浏览,抱歉不清楚。我意识到 CPU 代码不能在 GPU 上运行,但如果有一种方法可以做到这一点,那将是一个选择。我正在做一个非常简单的优化(目前使用 GP,但也想使用 RF 和 GBRF)。我正在使用 ask-tell 语法。基本代码是:

    from skopt import Optimizer
    opt = Optimizer(20,n_jobs = 5, base_estimator='GP')
    # the ask step below is what I'd like to parallelize, 
    # if possible, I tried setting n_jobs above, didn't help
    suggested = opt.ask(n_points = 20)
    # calculate fitness - this part is parallelized, works nicely
    fitnesses = calc_fitness(suggested)
    # the tell step is fast, no need to parallelize
    res = opt.tell( suggested, fitnesses)

任何建议,将不胜感激。谢谢

4

0 回答 0