SkillAgentSearch skills...

Deepxde

A library for scientific machine learning and physics-informed learning

Install / Use

/learn @lululxvi/Deepxde

README

DeepXDE

Build Status Documentation Status Codacy Badge PyPI Version PyPI Downloads Conda Version Conda Downloads License

DeepXDE is a library for scientific machine learning and physics-informed learning. DeepXDE includes the following algorithms:

DeepXDE supports five tensor libraries as backends: TensorFlow 1.x (tensorflow.compat.v1 in TensorFlow 2.x), TensorFlow 2.x, PyTorch, JAX, and PaddlePaddle. For how to select one, see Working with different backends.

Documentation: ReadTheDocs

Features

DeepXDE has implemented many algorithms as shown above and supports many features:

  • enables the user code to be compact, resembling closely the mathematical formulation.
  • complex domain geometries without tyranny mesh generation. The primitive geometries are interval, triangle, rectangle, polygon, disk, ellipse, star-shaped, cuboid, sphere, hypercube, and hypersphere. Other geometries can be constructed as constructive solid geometry (CSG) using three boolean operations: union, difference, and intersection. DeepXDE also supports a geometry represented by a point cloud.
  • 5 types of boundary conditions (BCs): Dirichlet, Neumann, Robin, periodic, and a general BC, which can be defined on an arbitrary domain or on a point set; and approximate distance functions for hard constraints.
  • 3 automatic differentiation (AD) methods to compute derivatives: reverse mode (i.e., backpropagation), forward mode, and zero coordinate shift (ZCS).
  • different neural networks: fully connected neural network (FNN), stacked FNN, residual neural network, (spatio-temporal) multi-scale Fourier feature networks, etc.
  • many sampling methods: uniform, pseudorandom, Latin hypercube sampling, Halton sequence, Hammersley sequence, and Sobol sequence. The training points can keep the same during training or be resampled (adaptively) every certain iterations.
  • 4 function spaces: power series, Chebyshev polynomial, Gaussian random field (1D/2D).
  • data-parallel training on multiple GPUs.
  • different optimizers: Adam, L-BFGS, etc.
  • conveniently save the model during training, and load a trained model.
  • callbacks to monitor the internal states and statistics of the model during training: early stopping, etc.
  • uncertainty quantification using dropout.
  • float16, float32, and float64.
  • many other useful features: different (weighted) losses, learning rate schedules, metrics, etc.

All the components of DeepXDE are loosely coupled, and thus DeepXDE is well-structured and highly configurable. It is easy to customize DeepXDE to meet new demands.

Installation

DeepXDE requires one of the following backend-specific dependencies to be installed:

Then, you can install DeepXDE itself.

  • Install the stable version with pip:
$ pip install deepxde
  • Install the stable version with conda:
$ conda install -c conda-forge deepxde
  • For developers, you should clone the folder to your local machine and put it along with your project scripts.
$ git clone https://github.com/lululxvi/deepxde.git

Explore more

Cite DeepXDE

If you use DeepXDE for academic research, you are encouraged to cite the following paper:

@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}
}

Contributing to DeepXDE

First off, thanks for taking the time to contribute!

  • Reporting bugs. To report a bug, simply open an issue in the GitHub Issues.
  • Suggesting enhancements. To submit an enhancement suggestion for DeepXDE, including completely new features and minor improvements to existing functionality, let us know by opening an issue in the GitHub Issues.
  • Pull requests. If you made improvements to DeepXDE, fixed a bug, or had a new example, feel free to send us a pull-request.
  • Asking questions. To get help on how to use DeepXDE or its functionalities, you can open a discussion in the GitHub Discussions.
  • Answering questions. If you know the answer to any question in the Discussions, you are welcomed to answer.

Slack. The DeepXDE Slack hosts a primary audience of moderate to experienced DeepXDE users and developers for general chat, online discussions, collaboration, etc. If you need a slack invite, please send me an email.

The Team

DeepXDE was developed by Lu Lu under the supervision of Prof. [George Karniadakis](https://www.brown.edu

Related Skills

View on GitHub
GitHub Stars4.0k
CategoryEducation
Updated10m ago
Forks944

Languages

Python

Security Score

100/100

Audited on Apr 4, 2026

No findings