我正在查看scipy.minimize文档,看看是否可以找到一种方法来在损失低于某个截止值时终止优化,但我看不到明显的方法来做到这一点。
回调选项只允许我传递它xk,但我需要传递额外的参数来评估我的损失。
有什么想法可以直接做到这一点吗?
我正在查看scipy.minimize文档,看看是否可以找到一种方法来在损失低于某个截止值时终止优化,但我看不到明显的方法来做到这一点。
回调选项只允许我传递它xk,但我需要传递额外的参数来评估我的损失。
有什么想法可以直接做到这一点吗?
所以我继续,只是修改了 scipy optimize.py 源代码来做我想做的事。我认为这不是最佳实践,但是......继续前进。所以我使用了inspect模块来找出对应的函数在哪里。所以对于鲍威尔优化程序,我发现:
def _minimize_powell
在 scipy/optimize/optimize.py 的第 2509 行。然后我转到第 2593 行,在那里我注意到了几个终止条件,我添加了自己的终止条件:
if fval < 0.1:
break
现在终止优化并在满足此条件时根据需要返回优化结构。