Reproducible material for Annealed Stein Variational Gradient Descent for Improved Uncertainty Estimation in Full-Waveform Inversion
Corrales M.1+, Berti S.2+, Denel B.3, Williamson P.3, Aleardi M.2, and Ravasi M.1
1 King Abdullah University of Science and Technology (KAUST)
2 University of Pisa
3 TotalEnergies
+ Equal contribution
This repository is organized as follows:
- 📂 svgdfwi: python library containing routines for SVGD-FWI.
- 📂 data: folder containing data.
- 📂 notebooks: set of jupyter notebooks testing the scripts.
- 📂 scripts: set of python scripts used to run multiple experiments (exp-for single frequency, and multiscale-for multi-frequency FWI).
- 📂 videos: Videos and plots for experiment monitoring.
- 📂 visualization: python routines for final plots.
The following notebooks are provided:
- 📙
00_testing_svgd_fwi.ipynb
: notebook performing the svgd setup for fwi; - 📙
01_HDBSCAN_clustering.ipynb
: notebook performing HDBSCAN clustering in the particles.
Set of scripts that are detailed on the file 📗 experiment_list.xlsx
.
To ensure reproducibility of the results, we suggest using the environment.yml
file when creating an environment.
Tip
In case you are experiencing slow installation on your conda, we advise updating your conda with the following commands:
conda info
conda update -n base conda
conda install -n base conda-libmamba-solver
conda config --set solver libmamba
This update will allow your conda to install packages in parallel.
Important
To install the env and package, simply run:
./install_env.sh
It will take some time. If at the end you see the word Done!
on your terminal, you are ready to go. After that, you can simply install your package (svgdfwi has to be activated):
pip install .
or in developer mode:
pip install -e .
Remember to always activate the environment by typing:
conda activate svgdfwi
Finally, to run the scripts, go to the scripts folder and run:
nohup python -u $your_python_file$.py hydra.job.chdir=False > $your_python_file$.log &
Note
All experiments have been carried on a Intel(R) Xeon(R) Gold 6142 CPU @ 2.60GHz equipped with a single NVIDIA A100-SXM4-80GB. Different environment configurations may be required for different combinations of workstation and GPU.
If you find this project useful, please consider citing our work using the following BibTeX reference:
@article{10.1093/gji/ggaf096,
author = {Corrales, Miguel and Berti, Sean and Denel, Bertrand and Williamson, Paul and Aleardi, Mattia and Ravasi, Matteo},
title = {Annealed Stein Variational Gradient Descent for Improved Uncertainty Estimation in Full-Waveform Inversion},
journal = {Geophysical Journal International},
pages = {ggaf096},
year = {2025},
month = {03},
issn = {1365-246X},
doi = {10.1093/gji/ggaf096},
url = {https://doi.org/10.1093/gji/ggaf096}
}