恢复scipy.optimize中的优化?

Kar*_*Rei 6 python mathematical-optimization scipy

scipy.optimize提供了用于多元和局部优化全局系统的许多不同方法。但是,我需要很长的优化运行,可能会中断该运行(在某些情况下,我可能会故意中断该运行)。有什么办法可以重启...好吧,其中的任何一个?我的意思是,显然可以提供一组最初始,最优化的参数作为初始猜测,但这并不是唯一的参数-例如,还有梯度(例如,美洲鳄),差异进化种群等我显然不希望这些也重新开始。

我看不出有什么办法可以证明这些秘密,也无法保存其状态。对于以jacobian为例的函数,有一个jacobian参数(“ jac”),但是它是一个布尔值(表示您的评估函数返回一个jacobian,而我的不是)或一个可调用函数(我只会提供上次运行的结果)。没有什么可以仅使用最后一个可用的jacobian数组。随着演化的差异,人员的流失对于绩效和融合将是可怕的。

有什么解决办法吗?有什么办法可以恢复优化吗?

ev-*_*-br 4

一般答案是否定的,除了如您所说的从上次运行的最后估计开始之外,没有通用的解决方案。

不过,特别是对于差异进化,您可以实例化DifferentialEvolutionSolver,您可以在检查点对其进行 pickle 并取消pickle 以恢复。(建议来自https://github.com/scipy/scipy/issues/6517