可以用记录器保存梯度规范(在基于梯度的优化期间)吗?



是否可以使用记录器将优化器使用的梯度规范保存为收敛标准,以便以后可视化?我回想起MDO课程的家庭作业,我们将在主要迭代上绘制梯度范数(参见下面的示例)。不好意思,这不是最漂亮的图可能应该用对数尺度)拥有这种能力将有助于呈现优化结果。

128D Rosenbrock最优性

我同时使用SciPy和PyOptSparse优化器。我试着在文档中找到一些东西,但是没有运气。

谢谢!

您正在寻找驱动程序的recording_options上的record_derivatives选项。默认情况下它是关闭的,但是打开它会导致对衍生品的每次调用都被保存到案例数据库中。一旦在数据库中,您可以通过检查case对象的derivatives属性来检索它。

查看衍生数据,包括绘制其范数值是有帮助的。然而,请记住,这个规范只有在无约束优化时才会趋于零。对于约束优化(不等式约束和平等约束),您要最小化拉格日函数的导数。这包括目标梯度,也包括所有约束梯度和拉格朗日乘子。所以你不能总是期望客观梯度本身的范数趋于零。

最新更新