是否有scipy.optimize.minimize的并行化版本?

时间:2017-12-16 23:27:12

标签: python numpy parallel-processing scipy mathematical-optimization

我正在尝试使用scipy.optimize.minimize最小化成本函数,但速度非常慢。我的函数有接近5000个变量,所以scipy很慢就不足为奇了。但是,如果存在scipy.optimize.minimize的并行版本,则可能会有很大帮助。

我想知道是否存在scipy.optimize.minimize这样的版本,或者是否有任何其他scipy / numpy工具可用于执行此幅度的最小化。我非常感谢任何帮助。

感谢大家的评论。这是使用SLSQP求解器的约束最小化。我已经花了很多时间确保成本函数计算得到优化,因此问题必须在于计算梯度或由于约束。换句话说,花在功能评估上的时间量是在最小化上花费的总时间的很小一部分。

1 个答案:

答案 0 :(得分:2)

我们在PyPI上可用的软件包 optimparallel 中实现了scipy.optimize.minimize(method='L-BFGS-B')的并行版本。通过并行评估目标函数和(近似)梯度,可以加快优化速度。我尚未使用5000个参数进行测试。但是,使用较少的参数,我们观察到良好的并行缩放。

Python软件包是R软件包optimParallel的Python实现。该方法记录在此R journal article中。

以下是可能的并行缩放的说明: enter image description here