尝试在OpenMDAO中录制时会出错
我正在尝试设置,运行和记录一个模型。代码的第一部分可完美地发挥作用,因此我为我使用的子系统,连接,设计变量,约束和目标提供了广义代码。
import openmdao.api as om
prob = om.Problem()
prob.model.add_subsystem(...)
prob.model.connect(...)
prob.model.add_design_var(...)
prob.model.add_objective(...)
prob.model.add_constraint(...)
prob.driver = om.ScipyOptimizeDriver(optimizer='SLSQP', tol=1e-9, disp=False)
但是,如果我试图连接录音机,例如:
recorder = om.SqliteRecorder('cases.sql')
prob.add_recorder(recorder)
prob.setup()
prob.set_solver_print(0)
prob.run_driver()
prob.record("after_run_driver")
cr = om.CaseReader("cases.sql")
driver_cases = cr.list_cases('problem', out_stream=None)
case = cr.get_case('after_run_driver')
const = case['con1']
print(const)
const_K = case.get_val("con1", units='K')
print(const_K)
我有一个错误:
File "C:\Users\philipp\Anaconda3\envs\Repo Philipp\lib\site-packages\openmdao\recorders\case_reader.py", line 26, in CaseReader
return SqliteCaseReader(filename, pre_load, metadata_filename)
File "C:\Users\philipp\Anaconda3\envs\Repo Philipp\lib\site-packages\openmdao\recorders\sqlite_reader.py", line 84, in __init__
check_valid_sqlite3_db(filename)
File "C:\Users\philipp\Anaconda3\envs\Repo Philipp\lib\site-packages\openmdao\utils\record_util.py", line 121, in check_valid_sqlite3_db
raise IOError('File does not exist({0})'.format(filename))
OSError: File does not exist(cases.sql)
有人可以解释我缺少的东西吗?我认为在执行期间创建并写入 case.sql 文件。
I am trying to set up, run and record a model. The first section of the code works flawlessly, hence I provided the generalized lines of code for the subsystems, connections, design variables, constraints and objectives I use.
import openmdao.api as om
prob = om.Problem()
prob.model.add_subsystem(...)
prob.model.connect(...)
prob.model.add_design_var(...)
prob.model.add_objective(...)
prob.model.add_constraint(...)
prob.driver = om.ScipyOptimizeDriver(optimizer='SLSQP', tol=1e-9, disp=False)
However, if I try to connect the recorder such as:
recorder = om.SqliteRecorder('cases.sql')
prob.add_recorder(recorder)
prob.setup()
prob.set_solver_print(0)
prob.run_driver()
prob.record("after_run_driver")
cr = om.CaseReader("cases.sql")
driver_cases = cr.list_cases('problem', out_stream=None)
case = cr.get_case('after_run_driver')
const = case['con1']
print(const)
const_K = case.get_val("con1", units='K')
print(const_K)
I get an error:
File "C:\Users\philipp\Anaconda3\envs\Repo Philipp\lib\site-packages\openmdao\recorders\case_reader.py", line 26, in CaseReader
return SqliteCaseReader(filename, pre_load, metadata_filename)
File "C:\Users\philipp\Anaconda3\envs\Repo Philipp\lib\site-packages\openmdao\recorders\sqlite_reader.py", line 84, in __init__
check_valid_sqlite3_db(filename)
File "C:\Users\philipp\Anaconda3\envs\Repo Philipp\lib\site-packages\openmdao\utils\record_util.py", line 121, in check_valid_sqlite3_db
raise IOError('File does not exist({0})'.format(filename))
OSError: File does not exist(cases.sql)
Can someone please explain what I am missing? I thought that the cases.sql file get created and written to during the execution.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论