問題タブ [openmdao]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
openmdao - DOE ドライバーの結果は Metamodel コンポーネントにフィードできますか?
サロゲートベースの最適化の調査に興味があります。私はまだ opendao のコードを書いていません。OpenMDAO がこの作業をどの程度サポートするかを理解しようとしているだけです。
トレーニング データを生成するための DOE ドライバー ( http://openmdao.readthedocs.org/en/1.5.0/usr-guide/tutorials/doe-drivers.html ) があることがわかります。いくつかの代理モデルがあることがわかります。メタモデルに追加できます ( http://openmdao.readthedocs.org/en/1.5.0/usr-guide/examples/krig_sin.html )。しかし、DOE の結果がトレーニング データとしてメタモデルに渡される例は見つかりませんでした。
サンプル/チュートリアル/フォーラム投稿の多くでは、トレーニング データがメタ モデル上またはメタ モデル内で直接作成されているようです。したがって、これらがどのように連携するかは明らかではありません。
開発者は、トレーニング データが DOE からメタ モデルにどのように渡されるかを説明できますか? ありがとう!
openmdao - OpenMDAO 内での AMMF の実装
Multi-Fidelity (MF) 最適化手法の調査に興味があります。私は、OpenMDAO がこの作業をどの程度サポートしているかを理解しようとしています。私は OpenMDAO のコードに深く入り込みたくありません。
シンプルな MF アプローチの 1 つに AMMF があります。基本的に、信頼領域内の低忠実度モデルを一次補正で最適化するため、結果は高忠実度方法に似ています。基本的なアルゴリズムは次のとおりです。
OpenMDAO では、high_fidelity() と low_fidelity() を適切なドライバーでグループ化でき、linearize メソッドを呼び出して勾配を取得できると考えています。
次に、最適化段階は、忠実度の低い分析とその分析の出力を修正する追加のコンポーネントを含むグループで動作するチュートリアルのような基本的な OpenMDAO 最適化問題です。
次に、外側のループを純粋な python として実装できます。そのために OpenMDAO がどこで必要になるのか、私にはよくわかりません。多分誰かがそれについてコメントできますか?
質問:
これは OpenMDAO で AMMF を実装する賢明な方法ですか?
純粋な python でループを使用する際に見られる問題の 1 つは、レコーダーにあります。外側のループ用に反復変数を追加する必要があります。この追加のループを認識するようにレコーダーを構成するにはどうすればよいですか?
収束を評価して信頼領域を調整するには、ラグランジュ乗数が必要です。勾配ベースの方法の場合、これらは通常、最適化ソリューションで計算されます。OpenMDAO ラッパーには、これらの値を抽出する方法がありますか? それとも、最適化出力ファイルから値を取得するために独自のスパゲッティ コードを作成する必要がありますか?
助けてくれてありがとう!
これが機能するようになったら、OpenMDAO 1.x ドキュメントのチュートリアルとして喜んでお渡しします。個人的には、より複雑な例がコミュニティに役立つと思います。
openmdao - OpenMDAO で IndepVarComp または他のコンポーネントに値を指定する方法は?
OpenMDAO の Paraboloid チュートリアルをいじっています。基本的に入力値を放物面コンポーネントに変更して、簡単なことを試しました。次のコードを参照してください。ただし、実行すると、何も起こらなかった場合と同じ結果が出力されます。それで、何が起こっているのですか?グループがある場合、入力をどのように変更しますか?
openmdao - openMDAO からバグを投稿する場所
openMDAO にバグが見つかりました。深刻なことは何もありませんが、バグを投稿する場所が見つかりませんでした。バグトラッカーか何かがあるかどうか誰かが知っていますか?
openmdao - OpenMDAO openmdao グループからパラメーターを抽出して設定する
openMDAO でいくつかの問題を設定しました。1 つの "params" ベクトルを抽出し、それを使用して別の入力を設定したいと考えています。基本的に、最初はいくつかのものを最適化し、次にそのソリューションを別の問題で使用して何か他のことをしたいと考えています ( OpenMDAO 内での AMMF の実装を参照)。
交換する必要がある変数に明示的に名前を付ける必要がないこの一般的なものを作成しようとしています。このように、2 つの問題が入力として同じ変数を使用する場合、それはうまくいくはずです...
問題を実行すると、グループから params メンバーにアクセスできますが、その params はデフォルト値で初期化されます。最後の実行の値ではありません。では、そのベクトルを取得するにはどうすればよいでしょうか。
この質問の 2 番目の部分は、1 回の操作ですべてのパラメーターを「設定」する方法だと思います。
- スタック オーバーフローのばかげた制限は、タイトルに問題という言葉を使用できないことです。わかりましたが、problem という openMDAO オブジェクトを参照したい場合はどうすればよいでしょうか?
python - openmdao ドライバーに整数変数を追加するにはどうすればよいですか?
このopenmdaoエラーに混乱しています。なぜこれが取り上げられているのですか?グラデーションがなく、有限差分を使用することを openmdao に伝えることはできますか? なぜこれは childWeight では発生するのに eta では発生しないのですか?
root.add('childWeight', IndepVarComp('x',100))
すべての変数を浮動小数点 (例-> )として初期化することでこの問題を回避できますがroot.add('childWeight', IndepVarComp('x',100.0))
、このエラーが発生した理由を理解したいと思います。
エラーが発生します
python - スケーリングを必要とする放物面最適化
スケーラーを使用したかったので、OpenMDAO 0.x ドキュメントの Paraboloid の例を OpenMDAO 1.x でテストすることになりましたが、スケーラーの有無にかかわらず奇妙な結果が得られます。コードは次のとおりです。
私のシステムで実行すると、次のようになります。
私は何か見落としてますか?
openmdao - 古い OpenMDAO と新しい OpenMDAO の有限の違い
そのため、コードを古い OpenMDAO から新しい OpenMDAO に変換しています。すべての出力と部分勾配が正しいことが確認されました。最初は問題はまったく最適化されませんでしたが、古いコードには勾配を提供しないコンポーネントがいくつかあることに気付きました。そのため、これらのコンポーネントに fd_options['force_fd'] = True を追加しましたが、それでも正しい値に最適化されません。全導関数を確認しましたが、それでも正しくありませんでした。また、古い OpenMDAO よりも各反復を実行するのにかなり長い時間がかかります。新しいコードを古い OpenMDAO コードと同じ値に最適化する唯一の方法は、勾配を提供するコンポーネントであっても、各コンポーネントを有限差分に設定することです。
- 古いOpenMDAOが自動有限差分を実行したとき、最適化に必要な出力と入力に対してのみ実行したのですか、それともすべての入力と出力のヤコビアン全体を計算しましたか? 「force_fd」を True にすると、新しい OpenMDAO について同じ質問が表示されます。
- コンポーネントのヤコビアンの一部を提供して、残りの有限差分を取得できますか? 古い OpenMDAO では、missing_deriv_policy = 'assume_zero' を設定しない限り、提供されていない勾配は有限差分でしたか?
openmdao - PBO を使用した有限差分グループのエラー
だから私はグループ全体で差を有限にしようとしていますが、エラーが発生しています
pass_by_obj である変数の差分を微分しようとしているという事実にたどり着きました。有限差分と pbo は、コンポーネント全体で差分を有限にすると機能しますが、グループ全体で差分を有限にすると失敗します。次に例を示します。