gpt4 book ai didi

scipy - 区分 OpenMDAO SciPy SLSQP 中的迭代和函数评估

转载 作者:行者123 更新时间:2023-12-04 17:49:49 29 4
gpt4 key购买 nike

我正在通过 OpenMDAO 使用 SLSQP 来解决优化问题。优化工作充分;最后的 SLSQP 输出如下:

Optimization terminated successfully.    (Exit mode 0)
Current function value: [-0.07475851]
Iterations: 44
Function evaluations: 87
Gradient evaluations: 44
Optimization Complete

我现在正尝试对结果进行后处理,并检查整个迭代过程中优化的收敛性。当我通过 sqlite 字典访问迭代时

db = sqlitedict.SqliteDict('opt_record.sqlite','iterations')
db.keys()

然后我看到 87 条记录。所以这里的“迭代”实际上是指函数评估。显然,这也可以给出收敛的想法,但是有没有办法真正访问迭代信息,要么通过某种输出机制,要么通过反向计算哪些函数评估指的是迭代结束?

最佳答案

在 SLSQP 中,您可以通过以下两种方式之一获取函数调用:

  1. 迭代,或主要迭代
  2. 线搜索

这两件事都被案例记录器记录下来,OpenMDAO 无法区分它们。不过,您可以将它们过滤掉,因为主要迭代总是会在导数计算之前出现。因此,没有任何导数的情况很可能来自线搜索。

关于scipy - 区分 OpenMDAO SciPy SLSQP 中的迭代和函数评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45984395/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com