GithubHelp home page GithubHelp logo

ovcharenkoo / mtl_low Goto Github PK

View Code? Open in Web Editor NEW
17.0 2.0 3.0 44.36 MB

Multi-task learning for low-frequency extrapolation and elastic model building

Jupyter Notebook 99.31% Python 0.68% Dockerfile 0.01% Shell 0.01%
seismic seismic-inversion deep-learning multitask-learning mtl pytorch

mtl_low's Introduction

Multi-task learning for low-frequency extrapolation and elastic model building from seismic data

by Ovcharenko Oleg, Vladimir Kazei, Tariq Alkhalifah and Daniel Peter. This repository contains the general workflow and synthetic data experiments reported in my Ph.D. dissertation and our paper at IEEE Transactions on Geoscience and Remote Sensing.

Note that examples below include experiments on synthetic data only due to the copyright associated with publishing the field data results.

workflow

Abstract

Low-frequency signal content in seismic data as well as a realistic initial model are key ingredients for robust and efficient full-waveform inversions. However, acquiring low-frequency data is challenging in practice for active seismic surveys. Data-driven solutions show promise to extrapolate low-frequency data given a high-frequency counterpart. While being established for synthetic acoustic examples, the application of bandwidth extrapolation to field datasets remains non-trivial. Rather than aiming to reach superior accuracy in bandwidth extrapolation, we propose to jointly reconstruct low-frequency data and a smooth background subsurface model within a multi-task deep learning framework. We automatically balance data, model and trace-wise correlation loss terms in the objective functional and show that this approach improves the extrapolation capability of the network. We also design a pipeline for generating synthetic data suitable for field data applications. Finally, we apply the same trained network to synthetic and real marine streamer datasets and run an elastic full-waveform inversion from the extrapolated dataset.

Repository structure

All notebooks are set for inference / view by default. Meaning that these will not run any heavy calculations unless reset otherwise. Instead, these will use the pre-trained weights and data to partially reproduce results from the paper. The Need extra column indicates that you would need to install third-party software to properly run these notebooks (installation scripts created when building the Docker container).

Filename Need extra Description
ex0_create_training_dataset.ipynb Yes Generate training dataset of synthetic waveforms
ex1_unet_l.ipynb Train UNet to predict low-frequency data
ex2_multi_l.ipynb Train Multi-column network to predict low-frequency data
ex3_multi_lm.ipynb Train Multi-column network to predict low-frequency data and local subsurface model
ex4_multi_lc.ipynb Train Multi-column network to predict low-frequency data using extra trace-wise correlation loss term
ex5_multi_lcm.ipynb Train Multi-column network to predict low-frequency data and local subsurface model. Also use the trace-wise correlation loss to fit the data
ex6_fwi_marmousi_with_predicted.ipynb Yes Run / view full-waveform inversion from predicted low-frequency data and initial subsurface model
ex7_fwi_marmousi_without_predicted.ipynb Yes Run / view full-waveform inversion from bandlimited data and poor initial model
ex8_make_pictures.ipynb Compare all trained networks and make key figures
shared_data_loading.ipynb This notebook is called by ex1-5
pyapi_denise.py High-level interface for DENISE-Black-Edition software package for seismic waveform simulation and inversion
assets Folder with images for README
pretrained_files Download and place pre-trained data here
utils Code components

How to start

Follow instructions below to start a Docker container, download the data and install all required dependencies (DENISE, Madagascar). Note, that scripts folder will be created automatically.

Download the code

git clone https://github.com/ovcharenkoo/mtl_low.git
cd mtl_low/
bash run-docker.sh

Install third-party software and download the data (~14Gb)

cd /workspace/
bash install_denise.sh
bash install_madagascar.sh
bash download_data.sh
cd /workspace/project

Add Madagascar to path

source /workspace/project/madagascar/share/madagascar/etc/env.sh

Run the Jupyter Lab on the default port 8888

jupyter lab .

Prerequsites and dependencies

  • Python 3.8
  • PyTorch 1.8
  • CUDA 11.0
  • NVIDIA Docker runtime

For the rest of Python dependencies check requirements.txt.

The following dependencies are installed by following the instructions above. Alternatively, to run FWI and data generation notebooks on your machine (examples 0, 6 and 7) you would need to download and compile DENISE-Black-Edition software for numerical wave propagation, followed by changing relevant paths in aforementioned notebooks. Moreover, for generation of the training dataset from scratch, you would need to install Madagascar software for seismic data processing.

Downloads

Run scripts/download_data.sh or manually download and unzip files by running tar -xvf arhive.tar.gz and place the complete folders according to the table

Link Size Destination Description
data.tar.gz ~ 13 Gb ./pretrained_files/data/* training and validation datasets
trained_nets.tar.gz ~ 300 Mb ./pretrained_files/trained_nets/* Pre-trained network weights
fwi_outputs.tar.gz ~ 10 Mb ./pretrained_files/fwi_outputs/* Inverted subsurface models etc.

Acknowledgments

Our implementation is heavily influenced and contains code blocks from Inpainting GMCNN.

Contact

Please raise an issue or let me know if something works wrong [email protected]

mtl_low's People

Contributors

ovcharenkoo avatar pplotn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

mtl_low's Issues

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.