Redirecting to exemplar docs...
Neural Operators Learning¶
Description¶
Neural operators (NOs) are neural networks (NNs) designed to learn mappings between infinite-dimensional function spaces. In this project, we will use a popular NO architecture, the Deep Operator Network (DeepONet) to solve Partial Differential Equations (PDEs) with the JAX library. In particular, we will solve the heat equation for different initial conditions to demonstrate the effectiveness of using NO networks for learning the dynamics of PDEs from data.
Learning Outcomes¶
- What are PDEs and their relationship to science and engineering
- What are different numerical integration methods
- How to solve PDEs using numerical integration, particular finite differences
- How neural networks and neural operators work
- Key differences between traditional NNs and NOs
- How to solve PDEs using NOs
| Task | Time |
|---|---|
| Reading | 8 hours |
| Running Notebooks | 6-12 hours |
| Practising | 5+ hours |
Requirements¶
Academic¶
- Knowledge of calculus, specifically differentiation
- Basic Python programming, including NumPy
- Basic knowledge in Deep Learning
System¶
- Python 3.10 or newer
- A laptop with a CUDA-capable GPU (for training networks)
Getting Started¶
Python Installation and Environments¶
- Install Python 3.10 or newer
- Create a Python virtual environment for installing the repo's modules and library dependencies
- Install the repo dependencies using the command
pip install -r requirements.txt - The Movie Writer, ffmpeg, is required for visualizing the solution of our PDE and must be installed
How to Use the Repo¶
- Start by reading
00-Intro-to-PDEs.ipynband running the code blocks for the concepts behind PDEs - Study
01-Solving-a-PDE.ipynbfor solving PDEs using numerical methods - Attempt
Example 1andExample 2by filling in the blanks marked by empty strings,"" - Solutions to the above can be found in the director
solutions - Read
02-Intro-to-Neural-Operators.ipynbfor key concepts on neural operators and operator learning - Walkthrough
03-Dataset-Generation.ipynbto generate the dataset for training our DeepONet - Walkthrough
04-Tutorial-00.ipynbfor training our DeepONet and visualising our results
Project Structure¶
.
├── notebooks
| ├── 00-Intro-to-PDEs.ipynb
| ├── 01-Solving-a-PDE.ipynb
| ├── 02-Intro-to-Neural-Operators.ipynb
| ├── 03-Dataset-Generation.ipynb
| ├── 04-Tutorial-00.ipynb
| ├── ...
│ └── data
├── docs
├── ...
└── requirements.txt
License¶
This project is licensed under the BSD-3-Clause license