2016-11-18 4 views
0

openmdao.core.driverDriverオブジェクトは、実行後に最も効率的にどのように勾配情報を取得できますか? get_desvarsget_constraintsget_objectivesのようなヘルパー関数がありますが、同様の簡単な方法で勾配とヘッセ行列の計算結果にアクセスできますか?これらの関数に引数を渡して、グラデーションやヘッセンを必要としていることを示すことはできますか?ドライバオブジェクトを使用してグラジエント情報にアクセスする

答えて

0

問題インスタンスでcalc-gradientメソッドを呼び出すことができます。ドライバーがグラデーション情報を取得する方法もそうです。 this testを見て、それをどう呼び出すかを見てください。

これは、実際に標準的なグラディエントベースの最適化ドライバがグラジエントをどのように計算するかということです。ドライバのrun methodは、問題インスタンスを引数として取り込みます。 これを呼び出すことができます。calc_gradient

+0

問題の子であるドライバからこのメソッドを呼び出すことはできますか?ドライバが 'prob.driver = pydakdriver()'として初期化されている場合、ドライバに関連する問題にアクセスするために 'super'またはsimillarメソッドを使用できますか? 'super(pydakdriver、self).calc_gadient(kwargs ['av_labels']、self.get_objectives()。keys())'のようなもの? – kilojoules

+0

私の答えをもう少し完成させ、グラデーションベースの最適化ドライバがグラデーションをどのように計算するかを示しました。 –

+0

Thanks Justin。ドライバーから制約と客観的な情報を直接得ることはできますが、グラデーションではないのはなぜですか? – kilojoules

関連する問題