Official implementation of the paper "Solving High Frequency and Multi-Scale PDEs with Gaussian Processes" [OpenReview][Arxiv][知乎] (ICLR 2024), by Shikai Fang*, Madison Cooley*, Da Long*, Shibo Li, Robert Kirby, Shandian Zhe. (*:equal contribution)
- model the PDE solution in frequency domain using Gaussian Processes(GP).
- Efficient Inference by maximizing log-joint prob over structured kernels:
Illustration of the learned solutions of some high-frequency PDEs.
The project is mainly built with Jax 0.4.8 under python 3.10. See detailed info of packages in requirements.txt
.
- Clone this repository.
- Install the required packages by running
pip install -r requirements.txt
. - Run the solvers for the 1d and 2d PDEs bu running the following scripts in the terminal:
- 1d PDEs:
. run_1d.sh
- 2d PDEs:
. run_2d.sh
- 1d PDEs:
- Detailed explanations on the PDEs and kernels are provided in the scripts.There are 4 kernels available:
- "Matern52_Cos_1d"--->GP-HM-Stm
- "SE_Cos_1d"--->GP-HM-GM
- "Matern52_1d"--->GP-Matern
- "SE_1d"--->GP-SE
- Hyperparameters of each PDE can be tuned in the
.yaml
file in theconfig
folder. The current hyperparameters are the best ones we found for each PDEs. - To apply the solver to other PDEs, you can modify the
equation_dict
variable in themodel_GP_solver_1d.py
andmodel_GP_solver_2d.py
files.
Please cite our work if you would like it
@inproceedings{fang2024solving,
title={Solving High Frequency and Multi-Scale PDEs with Gaussian Processes},
author={Shikai Fang and Madison Cooley and Da Long and Shibo Li and Robert Kirby and Shandian Zhe},
booktitle={International Conference on Learning Representation},
year={2024}
}