Skip to main content

DeePyMoD is a PyTorch-based implementation of the DeepMoD algorithm for model discovery of PDEs.

Project description

Screenshot

PyPI

DeePyMoD is a modular framework for model discovery of PDEs and ODEs from noise data. The framework is comprised of four components, that can separately be altered: i) A function approximator to construct a surrogate of the data, ii) a function to construct the library of features, iii) a sparse regression algorithm to select the active components from the feature library and iv) a constraint on the function approximator, based on the active components.

Screenshot

More information can be found in the following two papers: , arXiv:2011.04336, arXiv:1904.09406 and the full documentation is available on phimal.github.io/DeePyMoD/.

What's the use case? Classical Model Discovery methods struggle with elevated noise levels and sparse datasets due the low accuracy of numerical differentiation. DeepMoD can handle high noise and sparse datasets, making it well suited for model discovery on actual experimental data.

What types of models can you discover? DeepMoD can discover non-linear, multi-dimensional and/or coupled ODEs and PDEs. See our paper and the examples folder for a demonstration of each.

How to install

Dependencies and CUDA

We support Python 3.6, 3.7 and 3.8. We rely on the following packages, they will be installed in the pip installation procces for you: numpy, torch, sklearn, pysindy, natsort, tensorboard, matplotlib

We also make use of the PyTorch library, which can be installed with CPU and/or GPU support. Please refer to the PyTorch "Get Started" guide to get the version that is optimal for your system.

Install

To install DeePyMoD, pip can be used

pip install deepymod

in the main directory.

Development

If you wish to alter the code you can clone the package using:

git clone git@github.com:PhIMaL/DeePyMoD.git

and then install it from the cloned DeePyMoD directory using

pip install -e ./

Features

  • Many example notebooks We have implemented a variety of examples ranging from 2D Advection Diffusion, Burgers' equation to non-linear, higher order ODE's If you miss any example, don't hesitate to give us a heads-up.

  • Extendable DeePyMoD is designed to be easily extendable and modifiable. You can simply plug in your own cost function, library or training regime.

  • Automatic library The library and coefficient vectors are automatically constructed from the maximum order of polynomial and differentiation. If that doesn't cut it for your use case, it's easy to plug in your own library function.

  • Extensive logging We provide a simple command line logger to see how training is going and an extensive custom Tensorboard logger.

  • Fast Depending on the size of the data-set DeepMoD, running a model search with DeepMoD takes of the order of minutes/ tens of minutes on a standard CPU. Running the code on GPU's drastically improves performance.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

DeePyMoD-2.2.0.tar.gz (12.0 MB view details)

Uploaded Source

Built Distribution

DeePyMoD-2.2.0-py2.py3-none-any.whl (31.9 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file DeePyMoD-2.2.0.tar.gz.

File metadata

  • Download URL: DeePyMoD-2.2.0.tar.gz
  • Upload date:
  • Size: 12.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.0

File hashes

Hashes for DeePyMoD-2.2.0.tar.gz
Algorithm Hash digest
SHA256 5101a9d8fb10bd2715f8650658f64e6b50bc80ccd51471b431778c7450fc917b
MD5 67afb086304b1abdc84908b7b0d1f64c
BLAKE2b-256 abf09e23f54456a3ac1d2b5baa28d2a5bb037c6f2b681e7317fa0a12e4ed9d3e

See more details on using hashes here.

File details

Details for the file DeePyMoD-2.2.0-py2.py3-none-any.whl.

File metadata

  • Download URL: DeePyMoD-2.2.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 31.9 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.0

File hashes

Hashes for DeePyMoD-2.2.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ee9c95e8dbc1a9fe141528915cf47c8f6a59c821c22132caf8a52825936f975c
MD5 a85e139cda833ef08f895329cbb8359d
BLAKE2b-256 7db4294c30abee1a338f36acb24b312b70d9e46d6cdf08c7c83a5b85e7c3c4ae

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page