通过驱动程序对象访问梯度信息

accessing gradient information through a driver object

openmdao.core.driver Driver 对象在 运行 之后如何最有效地获取梯度信息?它具有 get_desvarsget_constraintsget_objectives 等辅助函数——是否有类似的简单方法来访问梯度和 hessian 计算结果?我可以向这些函数传递一个参数,表明我想要渐变 and/or hessians 吗?

您可以在 Problem 实例上调用 calc-gradient 方法。这也是驱动程序获取梯度信息的方式。查看 this test 了解我们如何称呼它。

这实际上是基于标准梯度的优化驱动程序计算梯度的方式。驱动程序的 run method 将问题实例作为参数 然后它可以调用 calc_gradient