python – 在scipy.optimize中恢复优化?

scipy.optimize提供了许多不同的方法,用于多变量系统的局部和全局优化.但是,我需要一个很长的优化运行可能会被中断(在某些情况下我可能想要故意中断它).有没有办法重新启动……好吧,其中任何一个?我的意思是,显然可以提供作为初始猜测找到的最后一组最优化的参数,但这不是唯一的参数 – 例如,还有渐变(例如雅可比),差异进化中的种群等我显然不希望这些也必须重新开始.

我认为很难证明这些是scipy,也不是为了保存它的状态.对于以jacobian为例的函数,有一个jacobian参数(“jac”),但它是一个布尔值(表示你的评估函数返回一个jacobian,我的没有),或者一个可调用的函数(我只会有最后一次运行的单一结果提供).没有什么只需要最后一个jacobian阵列.随着差异演变,人口的流失对于表现和融合来说将是可怕的.

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

最佳答案 一般的答案是否定的,除了正如你所说的那样,从上一次运行的最后一次估算开始,没有一般的解决方案.

但是,对于差分进化,您可以实例化DifferentialEvolutionSolver,您可以在检查点进行pickle并取消激活以恢复.
(建议来自https://github.com/scipy/scipy/issues/6517)

点赞