GithubHelp home page GithubHelp logo

faizao / gan Goto Github PK

View Code? Open in Web Editor NEW

This project forked from lukasmosser/stochastic_seismic_waveform_inversion

2.0 0.0 0.0 34.25 MB

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

License: MIT License

Python 11.03% Groovy 0.04% Makefile 0.08% TeX 0.03% Batchfile 0.08% Jupyter Notebook 88.73% Shell 0.01%

gan's Introduction

Adapted code by Jonas Mendonça ([email protected])

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

gan's People

Contributors

lukasmosser avatar

Stargazers

 avatar Lucas Rodrigues Cupertino Cardoso avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.