openmdao - 是否曾经以反向模式计算偏导数?
问题描述
我知道openMDAO可以在正向或反向模式下计算模型的总导数,但是偏导数总是在正向模式下计算吗?
例如,我有一个具有 400 个输入和 4 个输出的组件。显然,这是反向模式求解的候选对象。如果我只是declare_partials(['*'], ['*'], method=fd)
,openMDAO 会尝试以反向模式解决这个问题吗?
解决方案
反向模式近似的部分将不起作用。当您执行有限差分时,您将输入增加少量,然后调用compute
以计算输出。为了在反向模式下执行此操作,您需要能够“向后”运行组件,为其提供输出以产生输入。
所以答案是:OpenMDAO 总是在前向模式下计算近似的部分。
如果你的组件在 fd 中很慢,这可能是声明解析导数的好选择。
推荐阅读
- javascript - 如何运行 multiCapabilities 从配置文件中读取配置参数
- vue.js - Vuex:Mount() 和 computed() 是从同一个组件执行的,我的数据没有先加载?
- c# - 如何从c#中的输入类型时间检索代码中的值
- javascript - 如何设置全局单击侦听器以从许多按钮中获取值?
- moodle - 升级到 Moodle 3.6 后调用未定义函数 mysql_connect
- javascript - 实际上告诉我可以设置的选项的 jsPDF 文档?
- android - 错误:找不到符号类 DaggerAppComponent
- php - 如何修复应用程序系统中的 PHP Excel 导出错误
- react-native - 如何解决 Windows 中的本地构建问题
- javascript - Vuejs上传多个图像在没有cdn的情况下不起作用