DeepXde
DeepXDE ist eine Bibliothek für wissenschaftliches maschinelles Lernen und physikalisches Lernen. DeepXde enthält die folgenden Algorithmen:
- Physik-informiertes neuronales Netzwerk (Pinn)
- unterschiedliche Probleme lösen
- Vorwärts-/Inverse gewöhnliche/partielle Differentialgleichungen (ODES/PDEs) [Siam Rev.]
- Lösen von Forward/Inverse Integro-Differential-Gleichungen (IDES) [Siam Rev.]
- FPINN: Vorwärts-/Inverse fraktionelle PDEs (FPDEs) [Siam J. Sci. Comput.]
- NN-bitrares Polynomchaos (NN-APC): Vorwärts-/Inverse stochastische PDEs (SPDEs) [J. Computer. Phys.]
- Pinn mit harten Einschränkungen (HPinn): Lösen inverser Design/Topologieoptimierung [Siam J. Sci. Comput.]
- Verbesserung der Genauigkeit der Spinnstärke
- Restbasierte adaptive Stichproben [Siam Rev., Comput. Methoden Appl. Mech. Eng.]
- Gradientenverstärkter Pinn (GPINN) [Comput. Methoden Appl. Mech. Eng.]
- Pinn mit mehrstufigen Fourier-Funktionen [Comput. Methoden Appl. Mech. Eng.]
- Folien, Video, Video auf Chinesisch
- (physikalisch informiert) Deep Operator Network (Deeponet)
- Deeponet: Lernoperatoren [nat. Mach. Intelligkeit.]
- Deeponet-Erweiterungen, z. B. Pod-Deeponet [Comput. Methoden Appl. Mech. Eng.]
- Mionet: Lernen mehrerer Operatoren [Siam J. Sci. Comput.]
- Fourier-Deeponet [Comput. Methoden Appl. Mech. Eng.], Fourier-Mionet [Arxiv]
- Physik-informiertes Deeponet [Sci. Adv.]
- Multifidelity Deeponet [Phys. Rev. Research]
- Deepm & Mnet: Lösen von Multiphysik und Multiskalenproblemen [J. Computer. Phys., J. Comput. Phys.]
- Zuverlässige Extrapolation [Comput. Methoden Appl. Mech. Eng.]
- Multifidelity Neural Network (MFNN)
- Lernen aus Multifidelity -Daten [J. Computer. Phys., PNAs]
DeepXDE unterstützt fünf Tensorbibliotheken als Backends: TensorFlow 1.x ( tensorflow.compat.v1 in TensorFlow 2.x), Tensorflow 2.x, Pytorch, Jax und Paddlepaddle. Um eine auszuwählen, finden Sie die Arbeit mit unterschiedlichen Backends.
Dokumentation : Redethedocs




Merkmale
DeepXDE hat viele Algorithmen wie oben gezeigt implementiert und unterstützt viele Funktionen:
- Ermöglicht dem Benutzercode kompakt und ähnelt eng der mathematischen Formulierung.
- Komplexe Domänengeometrien ohne Tyrannei -Netzerzeugung. Die primitiven Geometrien sind Intervall, Dreieck, Rechteck, Polygon, Scheibe, Ellipse, Sternform, Quader, Kugel, Hypercube und Hypersphere. Andere Geometrien können als konstruktive feste Geometrie (CSG) unter Verwendung von drei Booleschen Operationen konstruiert werden: Gewerkschaft, Differenz und Schnittpunkt. DeepXDE unterstützt auch eine Geometrie, die durch eine Punktwolke dargestellt wird.
- 5 Arten von Randbedingungen (BCS): Dirichlet, Neumann, Robin, Periodic und ein allgemeiner BC, das auf einer willkürlichen Domäne oder auf einem Punkt festgelegt werden kann; und ungefähre Entfernungsfunktionen für harte Einschränkungen .
- 3 Methoden für Automatische Differenzierung (AD) zum Berechnen von Derivaten: Reverse -Modus (dh Backpropagation), Vorwärtsmodus und Null -Koordinatenverschiebung (ZCS).
- Verschiedene neuronale Netzwerke : Vollständiger neuronales Netzwerk (FNN), gestapeltes FNN, Rest neuronales Netzwerk, (räumlich-zeitlich) Multi-Scale-Feenier-Feature-Netzwerke usw.
- Viele Probenahmemethoden : Uniform, Pseudorandom, lateinische Hypercube -Probenahme, Haltonsequenz, Hammersley -Sequenz und Sobol -Sequenz. Die Trainingspunkte können dasselbe während des Trainings halten oder (adaptiv) bei bestimmten Iterationen neu abgetastet werden.
- 4 Funktionsräume : Power -Serie, Chebyshev -Polynom, Gaußsche Zufallsfeld (1D/2d).
- Daten-paralleles Training auf mehreren GPUs.
- Verschiedene Optimierer : Adam, L-BFGs usw.
- Speichern Sie das Modell während des Trainings bequem und laden Sie ein geschultes Modell.
- Rückrufe zur Überwachung der internen Zustände und Statistiken des Modells während des Trainings: frühes Stoppen usw.
- Unsicherheitsquantifizierung unter Verwendung eines Ausropfens.
- Float16 , Float32 und Float64 .
- Viele andere nützliche Merkmale: verschiedene (gewichtete) Verluste, Lernrate -Zeitpläne, Metriken usw.
Alle Komponenten von DeepXDE sind lose gekoppelt, und daher ist DeepXDE gut strukturiert und hochkonfigurierbar. Es ist einfach, DeepXDE an die Erfüllung neuer Anforderungen anzupassen.
Installation
DeepXDE erfordert, dass eine der folgenden Backend-spezifischen Abhängigkeiten installiert werden soll:
- TensorFlow 1.x: TensorFlow> = 2.7.0
- TensorFlow 2.x: TensorFlow> = 2.3.0, TensorFlow -Wahrscheinlichkeit> = 0,11.0
- Pytorch: Pytorch> = 1.9.0
- Jax: Jax, Flachs, Optax
- Paddlepaddle: Paddlepaddle> = 2.6.0
Dann können Sie DeepXde selbst installieren.
- Installieren Sie die stabile Version mit
pip :
- Installieren Sie die stabile Version mit
conda :
$ conda install -c conda-forge deepxde
- Für Entwickler sollten Sie den Ordner auf Ihre lokale Maschine klonen und zusammen mit Ihren Projektskripten zusammenstellen.
$ git clone https://github.com/lululxvi/deepxde.git
Mehr erforschen
- Installieren und Setup
- Demos der Funktionsnäherung
- Demos von Vorwärtsproblemen
- Demos inverser Probleme
- Demos des Operator -Lernens
- FAQ
- Forschungsarbeiten verwendeten DeepXde
- API
Zitieren DeepXde
Wenn Sie Deepxde für die akademische Forschung verwenden, werden Sie ermutigt, das folgende Papier zu zitieren:
@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}
}
Beitrag zu DeepXde
Zunächst einmal danke, dass Sie sich die Zeit genommen haben, um einen Beitrag zu leisten!
- Meldung von Fehler. Um einen Fehler zu melden, öffnen Sie einfach ein Problem in den Github -Problemen.
- Verbesserungen vorschlagen. Um einen Verbesserungsvorschlag für DeepXDE einzureichen, einschließlich vollständig neuer Funktionen und geringfügigen Verbesserungen der bestehenden Funktionalität, teilen Sie uns das Problem in den GitHub -Problemen mit.
- Anfragen ziehen. Wenn Sie sich bei DeepXDE verbesserten, einen Fehler behoben haben oder ein neues Beispiel hatten, können Sie uns gerne eine Pull-Request senden.
- Fragen stellen. Um Hilfe bei der Verwendung von DeepXDE oder seiner Funktionen zu erhalten, können Sie eine Diskussion in den Github -Diskussionen eröffnen.
- Fragen beantworten. Wenn Sie die Antwort auf eine Frage in den Diskussionen kennen, werden Sie zur Beantwortung begrüßt.
Locker. Die DeepXde Slack veranstaltet ein primäres Publikum von moderaten bis erfahrenen DeepXDE -Benutzern und -Enternern für allgemeine Chat, Online -Diskussionen, Zusammenarbeit usw. Wenn Sie eine Slack -Einladung benötigen, senden Sie mir bitte eine E -Mail.
Das Team
DeepXde wurde von Lu Lu unter der Aufsicht von Prof. George Karniadakis an der Brown University von Sommer 2018 bis 2020 entwickelt. Deepxde wurde ursprünglich in Subversion an der Brown University unter dem Namen Sciconet (Scientific Computing Neural Networks) selbst gehostet. Am 7. Februar 2019 wurde Sciconet von Subversion nach Github bewegt, umbenannt in DeepXde.
DeepXDE wird derzeit von Lu Lu an der Yale University mit größeren Beiträgen vieler talentierter Personen in verschiedenen Formen und Mitteln gepflegt. Eine nicht exexautive, aber wachsende Liste muss erwähnen: Paul Escapil-Inchauspé, Zonger Zou, Jialin Li, Saransh Chopra, Sensen HE, Vladimir Dudenkov, Anran Jiao, Zhongyi Jiang, Shunyuan Mao.
Lizenz
LGPL-2.1-Lizenz