/gnn-bvp-solver

Source code for paper "Learning the Solution Operator of Boundary Value Problems using Graph Neural Networks"

Primary LanguagePythonMIT LicenseMIT

Source code for paper "Learning the Solution Operator of Boundary Value Problems using Graph Neural Networks".

NOTE on reproducibility (17 Aug 2023): The appendix of the arxiv version of our paper has been updated with more extensive results (mean and standard deviation over 5 runs) to increase reproducibility of our results.

Using the data

The data is stored publicly in google buckets in requester-pays mode. To access the data and train your models, you need to include a billing project. The raw data can also be found on huggingface. You would need to adapt the dataset paths in the config files after downloading and afterwards you would be able to run the experiments without accessing the cloud.

Use weights & biases:

We use weights & biases for logging and experiment tracking. You can create your free account here. Use wandb login to login from your python environment as described here.

Run training:

Make sure all requirements are installed via pip install -r requirements.txt. If you have trouble installing PyTorch Geometric on your machine make sure to follow the official instructions. In the config folder, training scripts are provided for all experiments in the paper. An example command would be:

python -m gnn_bvp_solver.app --config configs/task_shape/es_ma.json --no-gpu 

Test a model:

Look for the model you want to test in the weight & biases artifact store. The best and latest model will be automatically tagged for each run. Pass test as task and the model artifact. It is important to use the same config like for training. An example command would be:

python -m gnn_bvp_solver.app --task test --artifact model-aer8oj02:v1 --config configs/task_shape/es_ma.json --no-gpu

Paper

Please find the full details for our experiments in the paper. We published our work at the AI for Science workshop at ICML 2022.

License

This software is licensed under the MIT License.

Cite our work

Please cite the paper if you use this code in your own work.

@article{lotzsch2022learning,
  title={Learning the Solution Operator of Boundary Value Problems using Graph Neural Networks},
  author={L{\"o}tzsch, Winfried and Ohler, Simon and Otterbach, Johannes S},
  journal={ICML 2022 2nd AI for Science Workshop},
  year={2022}
}