scipy.optimize 提供了许多不同的方法用于多元系统的局部和全局优化。然而,我需要一个很长的优化运行,可能会被中断(在某些情况下,我可能想故意中断它)。有什么办法可以重新启动吗?嗯,有什么办法吗?我的意思是,显然可以提供最后一组最优化的参数作为初始猜测,但这并不是唯一起作用的参数 - 例如,还有梯度(例如雅可比)、差分进化中的种群等.我显然不希望这些也必须重新开始。
我认为几乎没有办法向 scipy 证明这些,也没有办法保存其状态。例如,对于采用雅可比的函数,有一个雅可比参数(“jac”),但它要么是一个布尔值(表明您的评估函数返回一个雅可比,而我的函数没有),要么是一个可调用函数(我只想提供上次运行的单个结果)。没有什么只需要最后一个可用的雅可比数组。在差异进化的情况下,种群的损失对于性能和收敛来说将是可怕的。
有什么解决办法吗?有什么办法可以恢复优化吗?
一般答案是否定的,除了如您所说的从上次运行的最后估计开始之外,没有通用的解决方案。
不过,对于差分进化,您可以实例化DifferentialEvolutionSolver
,您可以在检查点对其进行pickle,然后取消pickle以恢复。
(建议来自https://github.com/scipy/scipy/issues/6517 https://github.com/scipy/scipy/issues/6517)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)