通过示例中的记录器错误访问导数

Accessing the derivatives via the recorder error in example

我正在尝试访问衍生品。看说明书,录音机应该有。但是,运行 下面的代码我收到了错误: 有什么想法吗?

deriv_case = cr.driver_derivative_cases.get_case('rank0:SLSQP|1')

AttributeError: 'SqliteCaseReader' 对象没有属性 'driver_derivative_cases'**

from openmdao.drivers.scipy_optimizer import ScipyOptimizeDriver

from openmdao.test_suite.components.sellar import SellarDerivativesGrouped
from openmdao.test_suite.components.sellar import SellarProblem

from openmdao.recorders.case_reader import CaseReader
from openmdao.recorders.sqlite_recorder import SqliteRecorder

prob = SellarProblem(SellarDerivativesGrouped)

driver = prob.driver = ScipyOptimizeDriver(optimizer='SLSQP')
driver.recording_options['record_derivatives'] = True
fname = "record.sql"
recorder = SqliteRecorder(fname)
prob.driver.add_recorder(recorder)
#driver.add_recorder('recorder')

prob.setup()
prob.run_driver()


prob.cleanup()

cr = CaseReader(fname)

# Get derivatives associated with the first iteration.
deriv_case = cr.driver_derivative_cases.get_case('rank0:SLSQP|1')

# Get all derivatives from that case.
derivs = deriv_case.get_derivatives()

# See what derivatives have been recorded.
print(set(derivs.keys))

该示例来自最新的 beta 文档,这些文档与 github master 分支上的当前代码相关联。我了解到您可能是 运行 最新版本,即 2.3.1,目前还没有该功能。您可以在 Github 上克隆我们的存储库以获取对代码的最新提交,或者您可以等到我们发布 2.4。