eval_objective 自动架构命令
eval_objective command for automatic architectures
这是一个自动架构代码(来源:http://openmdao.org/releases/0.13.0/docs/tutorials/mdao/optproblem.html)
我怀疑打印 objective 函数的最小值的代码是什么。
这可能非常微不足道,但我不明白。我尝试使用 eval_objective 但它不起作用。现有代码要添加什么代码?
def display_results():
print "Minimum found at (%f, %f, %f)" % (problem.dis1.z1,
problem.dis1.z2,
problem.dis1.x1)
print "Couping vars: %f, %f" % (problem.dis1.y1, problem.dis2.y2)
print "Function calls dis1: %d, dis2: %d"%(problem.dis1.exec_count,problem.dis2.exec_count)
print "\n"
该代码假定优化器已完成并将模型留在给出最低 objective 的点。对于所有基于梯度的优化器,这是一个合理的假设。
要在 openmdao > 1.7.x 中做同样的事情,请参阅以下教程:
http://openmdao.readthedocs.io/en/1.7.3/usr-guide/tutorials/paraboloid-tutorial.html#optimization-of-the-paraboloid-with-a-constraint
print('Minimum of %f found at (%f, %f)' % (top['p.f_xy'], top['p.x'], top['p.y']))
这是一个自动架构代码(来源:http://openmdao.org/releases/0.13.0/docs/tutorials/mdao/optproblem.html) 我怀疑打印 objective 函数的最小值的代码是什么。 这可能非常微不足道,但我不明白。我尝试使用 eval_objective 但它不起作用。现有代码要添加什么代码?
def display_results():
print "Minimum found at (%f, %f, %f)" % (problem.dis1.z1,
problem.dis1.z2,
problem.dis1.x1)
print "Couping vars: %f, %f" % (problem.dis1.y1, problem.dis2.y2)
print "Function calls dis1: %d, dis2: %d"%(problem.dis1.exec_count,problem.dis2.exec_count)
print "\n"
该代码假定优化器已完成并将模型留在给出最低 objective 的点。对于所有基于梯度的优化器,这是一个合理的假设。
要在 openmdao > 1.7.x 中做同样的事情,请参阅以下教程: http://openmdao.readthedocs.io/en/1.7.3/usr-guide/tutorials/paraboloid-tutorial.html#optimization-of-the-paraboloid-with-a-constraint
print('Minimum of %f found at (%f, %f)' % (top['p.f_xy'], top['p.x'], top['p.y']))