1

OpenMDAO v1.x+ で書いたプログラムの Unitest を作成しています。私は check_total_derivatives 関数を使用して導関数を取得し、それらを有限差分と比較してチェックしています。とはいえ、最後の不明は6個くらいチェックする程度で、全部で90個くらいあります。check_total_derivatives 関数にオプションを追加して、関数でチェックする未知数を指定することは可能でしょうか? 現在、すべてを完了するには非常に長い時間がかかります。私は自分のバージョンの OpenMDAO でこの機能を作成しましたが、このプログラムは、組み込まれていない限り、この機能を持たない他のユーザーを対象としています。

4

1 に答える 1

1

これを行う方法があります。add_constraintまたはドライバーを呼び出して未知数に対する制約または目的を指定しadd_objective、その後 check_total_derivatives を呼び出すと、それらの未知数の導関数のみが計算されます。同様に、 で設計変数を指定するとadd_desvar、それらの入力のみに関して導関数が計算されます。

この機能が追加された主な理由は、オプティマイザーが認識する勾配を確認したい場合があるためです。最適化を行っていない場合でも、API を使用して制約などを基本的な に追加できますDriver。これにより実行が変更されることはありませんが、それでもスコープを制限できますcheck_total_derivatives.

あなたのリクエストはまだ良い機能リクエストとして残っていると思います-今のところ回避策を提供したかっただけです.

于 2016-02-23T21:45:38.037 に答える