This repository implements FNOPE, a method for simulation-based inference for function-valued parameters. It also implements the main experiments from the publication (published in NeurIPS 2025).
Clone and install this repository:
git clone https://github.com/mackelab/fnope
cd fnope
pip install -e .
To run the Darcy simulator and experiments, you also have to install the physicsnemo package. in the fnope environment, run:
pip install warp-lang
pip install nvidia-physicsnemo
NOTE: physicsnemo will install torch>=2.8.0, whereas sbi requires torch<=2.6.0. pip will throw a warning, but there are no breaking conflicts.
NOTE The main branch was updated to match sbi==0.25.0, which was released after publication of the paper. These updates may change the performance of the baseline sbi methods. To match the sbi version used during publication and reproducing of the published results, please change to the neurips branch.
We use hydra for experiment management.
The experiments from the preprint are found under fnope/experiments/. To run the experiments, first generate the necessary data using data_generation/simulate_{TASK_NAME}.py. Note that data for the ice experiment is publicly available.
Make sure to update the root folder in fnope/config/base_paths to the absolute path of your current folder. Then train and evaluate FNOPE on any task with 'python fnope/experiments/{TASK_NAME}/run_fnope_{TASK_NAME}', or the baselines with 'python fnope/experiments/{TASK_NAME}/run_baseline_sbi_{TASK_NAME}'. Each run file has its own config file under config, which you can change to run sweeps or local debug runs.
We provide two tutorial jupyter notebooks for training FNOPE models under notebooks.
@inproceedings{moss2025fnope, author = {{Moss}, Guy and {Muhle}, Leah Sophie and {Drews}, Reinhard and {Macke}, Jakob H. and {Schr{"o}der}, Cornelius}, title = {FNOPE: Simulation-based inference on function spaces with Fourier Neural Operators}, booktitle={The Thirty-eighth Annual Conference on Neural Information Processing Systems}, year = {2025}, }