Skip to content

Official Implementation of "Stochastic seismic waveform inversion using generative adversarial networks as a geological prior"

License

Notifications You must be signed in to change notification settings

LukasMosser/stochastic_seismic_waveform_inversion

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Stochastic seismic waveform inversion using generative adversarial networks as a geological prior

Authors: Lukas Mosser, Olivier Dubrule, Martin J. Blunt

Pytorch implementation of Stochastic seismic waveform inversion using generative adversarial networks as a geological prior

Model Architecture

The model architecture consists of two parts:

  • the generative adversarial network (implemented in Pytorch)
  • the acoustic wave equation forward solver implemented in (Devito).
    The coupling between the two defines a fully differentiable computational graph.

Movie representation of samples from the prior

Movie representation of samples from the posterior (27 sources)

Usage

To perform the inversion using the available pre-trained generator network use apps/main_paper_version_revised.py
(Sorry for the long name, but older versions of the code were kept for reference purposes)

Trained Models

Pre-trained models are available in the checkpoints directory.

Results and Data

The resulting datasets are available in this Google Drive

Each run was made reproducible by setting the run-number = seed command-line argument.
Computations were performed on Imperial College CX1 supercomputing facilities.
Total duration: 12 hours wall-time on 32-core nodes ~ 50 nodes simultaneously.

Figures from paper

The figures from the paper can be reproduced using notebooks/Paper_Figures.ipynb.
All figures are located in results/figures

Devito Optimizations

The library used to represent the forward solver has a number of optimizations that allow it to parallelize across cores and nodes using MPI.
We suggest the following environment variables be set to maximize for performance:

DEVITO_OPENMP="1";
DEVITO_DLE="advanced"
DEVITO_LOGGING="INFO"
DEVITO_ARCH="gcc"

An example bash script used to perform the numerical computations on Imperial's CX1 cluster can be found in scripts/cluster_run.sh

Citing

@article{mosser2018stochastic,
  title={Stochastic seismic waveform inversion using generative adversarial networks as a geological prior},
  author={Mosser, Lukas and Dubrule, Olivier and Blunt, Martin J},
  journal={arXiv preprint arXiv:1806.03720},
  year={2018}
}

Acknowledgements

The author would like to acknolwedge the developers of the Devito.
If you use their software, please acknowledge them in your references.
O. Dubrule would like to thank Total for seconding him as a visiting professor at Imperial College London.

License

MIT