我正在尝试使用scipy.optimize.minimize
最小化成本函数,但速度非常慢。我的函数有接近5000个变量,所以scipy很慢就不足为奇了。但是,如果存在scipy.optimize.minimize
的并行版本,则可能会有很大帮助。
我想知道是否存在scipy.optimize.minimize
这样的版本,或者是否有任何其他scipy / numpy工具可用于执行此幅度的最小化。我非常感谢任何帮助。
感谢大家的评论。这是使用SLSQP求解器的约束最小化。我已经花了很多时间确保成本函数计算得到优化,因此问题必须在于计算梯度或由于约束。换句话说,花在功能评估上的时间量是在最小化上花费的总时间的很小一部分。
答案 0 :(得分:2)
我们在PyPI上可用的软件包 optimparallel 中实现了scipy.optimize.minimize(method='L-BFGS-B')
的并行版本。通过并行评估目标函数和(近似)梯度,可以加快优化速度。我尚未使用5000个参数进行测试。但是,使用较少的参数,我们观察到良好的并行缩放。
Python软件包是R软件包optimParallel的Python实现。该方法记录在此R journal article中。