deepxde
Deepxdeは、科学機械学習と物理学習学習のためのライブラリです。 DeepXDEには、次のアルゴリズムが含まれています。
- 物理学に基づいたニューラルネットワーク(PINN)
- さまざまな問題を解決します
- フォワード/逆逆方程式/部分微分方程式(ODES/PDES)[SIAM Rev.]を解く
- フォワード/逆integro異なる方程式(IDES)[SIAM Rev.]を解く
- FPINN:フォワード/逆分数PDES(FPDES)を解く[SIAM J. SCI。 Comput。]
- nn-arbitrary多項式カオス(NN-APC):フォワード/逆確率PDES(SPDES)を解く[J.コンピューター。 Phys。]
- ハード制約を備えたPINN(HPINN):逆設計/トポロジの最適化の解決[Siam J. Sci。 Comput。]
- PINN精度の向上
- 残留ベースの適応サンプリング[Siam Rev.、Comput。方法Appl。メカ。 Eng。]
- 勾配強化Pinn(gpinn)[Comput。方法Appl。メカ。 Eng。]
- マルチスケールフーリエ機能を備えたPINN [Comput。方法Appl。メカ。 Eng。]
- スライド、ビデオ、中国語のビデオ
- (物理学に基づいた)ディープオペレーターネットワーク(deeponet)
- Deeponet:学習オペレーター[Nat。マッハ。インテル。]
- Deeponet拡張機能、例えば、Pod-Deeponet [Comput。方法Appl。メカ。 Eng。]
- Mionet:複数の入力演算子の学習[Siam J. Sci。 Comput。]
- FORIER-DEEPONET [Comput。方法Appl。メカ。 Eng。]、Forier-Mionet [arxiv]
- 物理学に基づいたディープネット[SCI。 adv。]
- Multifidelity Deeponet [Phys。 Rev. Research]
- DEEPM&MNET:多目的とマルチスケールの問題の解決[J.コンピューター。 Phys。、J。Comput。 Phys。]
- 信頼できる外挿[Comput。方法Appl。メカ。 Eng。]
- マルチディデリティニューラルネットワーク(MFNN)
- マルチディデリティデータから学習[J.コンピューター。 Phys。、pnas]
DeepXDEは、バックエンドとして5つのテンソルライブラリをサポートしています。Tensorflow1.x( tensorflow.compat.v1 in Tensorflow 2.x)、Tensorflow 2.x、Pytorch、Jax、およびPaddlepaddle。 1つを選択する方法については、さまざまなバックエンドの作業を参照してください。
ドキュメント:readthedocs




特徴
DeepXDEは、上記のように多くのアルゴリズムを実装しており、多くの機能をサポートしています。
- ユーザーコードがコンパクトであることを可能にし、数学的定式化に類似しています。
- 専制メッシュ生成のない複雑なドメイン形状。プリミティブジオメトリは、間隔、三角形、長方形、ポリゴン、ディスク、楕円、星型、立方体、球体、ハイパーキューブ、ハイパー球です。その他の形状は、3つのブール操作、結合、差、および交差点を使用して、建設的な固体ジオメトリ(CSG)として構築できます。 DeepXDEは、ポイントクラウドで表されるジオメトリもサポートしています。
- 5種類の境界条件(BCS):Dirichlet、Neumann、Robin、Recionic、および一般的なBC。任意のドメインまたはポイントセットで定義できます。ハード制約のための近似距離関数。
- 3派生物を計算するための自動分化(AD)メソッド:リバースモード(IE、バックプロパゲーション)、フォワードモード、およびゼロ座標シフト(ZCS)。
- さまざまなニューラルネットワーク:完全に接続されたニューラルネットワーク(FNN)、積み重ねられたFNN、残留ニューラルネットワーク、(空間的)マルチスケールフーリエ機能ネットワークなど。
- 多くのサンプリング方法:均一、擬似ランダム、ラテンハイパーキューブサンプリング、Haltonシーケンス、ハマースリーシーケンス、およびSobolシーケンス。トレーニングポイントは、トレーニング中に同じものを維持するか、特定の反復ごとに(適応的に)リサンプリングできます。
- 4関数スペース:パワーシリーズ、チェビシェフ多項式、ガウスランダムフィールド(1d/2d)。
- 複数のGPUに関するデータ並列トレーニング。
- 別のオプティマイザー:Adam、L-BFGSなど。
- トレーニング中にモデルを便利に保存し、訓練されたモデルをロードします。
- トレーニング中のモデルの内部状態と統計を監視するためのコールバック:早期停止など。
- ドロップアウトを使用した不確実性の定量化。
- float16 、 float32 、およびfloat64 。
- 他の多くの有用な機能:異なる(加重)損失、学習率のスケジュール、メトリックなど。
DeepXDEのすべてのコンポーネントはゆるく結合されているため、DeepXDEは十分に構造化されており、高度に構成可能です。 DeepXDEをカスタマイズして、新しい需要を満たすのは簡単です。
インストール
DEEPXDEには、以下のバックエンド固有の依存関係のいずれかをインストールする必要があります。
- Tensorflow 1.x:Tensorflow> = 2.7.0
- Tensorflow 2.x:Tensorflow> = 2.3.0、Tensorflow確率> = 0.11.0
- Pytorch:Pytorch> = 1.9.0
- Jax:Jax、Flax、Optax
- パドルパドル:パドルパドル> = 2.6.0
その後、DeepXDE自体をインストールできます。
-
condaに安定したバージョンをインストールします。
$ conda install -c conda-forge deepxde
- 開発者の場合、フォルダーをローカルマシンにクローンし、プロジェクトスクリプトと一緒に配置する必要があります。
$ git clone https://github.com/lululxvi/deepxde.git
もっと探検してください
- インストールとセットアップ
- 関数近似のデモ
- 前方の問題のデモ
- 逆問題のデモ
- オペレーター学習のデモ
- よくある質問
- 研究論文はdeepxdeを使用しました
- API
Deepxdeを引用します
DeepXDEを学術研究に使用する場合は、次の論文を引用することをお勧めします。
@article{lu2021deepxde,
author = {Lu, Lu and Meng, Xuhui and Mao, Zhiping and Karniadakis, George Em},
title = {{DeepXDE}: A deep learning library for solving differential equations},
journal = {SIAM Review},
volume = {63},
number = {1},
pages = {208-228},
year = {2021},
doi = {10.1137/19M1274067}
}
Deepxdeに貢献します
まず、貢献するために時間を割いてくれてありがとう!
- バグの報告。バグを報告するには、GitHubの問題で問題を開くだけです。
- 強化を提案します。 DeepXDEの拡張提案を提出するには、完全に新しい機能や既存の機能の軽微な改善を含め、GitHubの問題で問題を開いてお知らせください。
- リクエストをプルします。 DeepXDEに改善を行った場合、バグを修正した場合、または新しい例がある場合は、Pull-Requestをお気軽に送信してください。
- 質問する。 DeepXDEまたはその機能の使用方法についてヘルプを得るには、GitHubディスカッションでディスカッションを開くことができます。
- 質問に答える。議論の質問に対する答えを知っているなら、あなたは答えることを歓迎します。
スラック。 DeepXde Slackは、一般的なチャット、オンラインディスカッション、コラボレーションなどのために、中程度から経験豊富なDeepXDEユーザーと開発者の主要な視聴者をホストしています。SlackInviteが必要な場合は、メールを送ってください。
チーム
Deepxdeは、2018年の夏から2020年までブラウン大学のジョージカルニアダキス教授の監督の下でLu Luによって開発されました。ディープクデは、もともとブラウン大学のSubversionで、Sciconet(科学的コンピューティングニューラルネットワーク)という名前で自己ホストされていました。 2019年2月7日、SciconetはSubversionからGithubに移動し、Deepxdeに改名されました。
Deepxdeは現在、イェール大学のLu Luによって維持されており、さまざまな形や手段の多くの才能ある個人からの大きな貢献があります。ポール・エスカピル・インチャウス、ゾンレン・ゾウ、ジャイアン・リー、サランシュ・チョプラ、センセン・彼、ウラジミール・デュデンコフ、アンラン・ジアオ、Zhongyi jiang、shunyuan mao。
ライセンス
LGPL-2.1ライセンス