diffefwi

Official repository for the "Learned regularizations for multi-parameter elastic full waveform inversion using diffusion models" paper.

https://github.com/deepwave-kaust/diffefwi

Science Score: 39.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.8%) to scientific vocabulary

Keywords

diffusion-models full-waveform-inversion regularization
Last synced: 6 months ago · JSON representation

Repository

Official repository for the "Learned regularizations for multi-parameter elastic full waveform inversion using diffusion models" paper.

Basic Info
Statistics
  • Stars: 31
  • Watchers: 2
  • Forks: 4
  • Open Issues: 0
  • Releases: 1
Topics
diffusion-models full-waveform-inversion regularization
Created almost 2 years ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation

README.md

LOGO

Reproducible material for Learned regularizations for elastic full waveform inversion using diffusion models - Mohammad H. Taufik, Fu Wang, Tariq Alkhalifah.

Project structure

This repository is organized as follows:

  • :openfilefolder: asset: folder containing logo.
  • :openfilefolder: data: a folder containing the subsampled velocity models used to train the diffusion model.
  • :openfilefolder: notebooks: reproducible notebook for the third synthetic test of the paper (near-surface SEAM Arid model).
  • :openfilefolder: saves: a folder containing the trained diffusion model (using the combined dataset) and results from the EFWI.
  • :openfilefolder: scripts: a set of Python scripts used to run diffusion training, diffusion sampling, and EFWI.
  • :openfilefolder: src: a folder containing routines for the diffefwi source file.

Notebooks

The following notebooks are provided:

  • :orange_book: Example-2-efwi.ipynb: notebook reproducing the results of the near-surface synthetic test in the paper.
  • :orange_book: colab.ipynb: notebook to run the experiments from Google Colab.

Scripts

The following scripts are provided:

  • : Example-0-unconditional-sampling.py: drawing unconditional samples from a trained diffusion model.
  • : Example-1-diffusion-training.py: diffusion model training using the combined dataset of the paper.
  • : Example-2-efwi.py: simple multi-parameter checkerboard test with an acquisition setting mimicking the land field data application of the paper.

Getting started :space_invader: :robot:

To ensure the reproducibility of the results, we suggest using the environment.yml file when creating an environment.

To install the environment, run the following command: ./install_env.sh It will take some time, but if, in the end, you see the word Done! on your terminal, you are ready to go.

Remember to always activate the environment by typing: conda activate diffefwi

Disclaimer: All experiments have been carried on a Intel(R) Xeon(R) Silver 4316 CPU @ 2.30GHz equipped with a single NVIDIA A100 GPU. Different environment configurations may be required for different combinations of workstation and GPU.

Running from virtual machines

Our diffefwi source codes can be installed as a standalone python package. It can directly be installed and utilized on existing open-source GPU providers, like Google Colab. Please refer to our colab.ipynb notebook for the details.

Cite us

```bibtex @article{taufik2024learned, title={Learned regularizations for multi-parameter elastic full waveform inversion using diffusion models}, doi={10.1029/2024JH000125}, author={Taufik, Mohammad Hasyim and Wang, Fu and Alkhalifah, Tariq}, journal={Journal of Geophysical Research: Machine Learning and Computation}, year={2024}, publisher={Wiley Online Library} }

Owner

  • Name: DeepWave - KAUST
  • Login: DeepWave-KAUST
  • Kind: organization
  • Location: Saudi Arabia

GitHub Events

Total
  • Watch event: 17
  • Push event: 1
  • Fork event: 2
Last Year
  • Watch event: 17
  • Push event: 1
  • Fork event: 2

Dependencies

setup.py pypi
  • numpy *
  • pandas *
  • scipy *
  • setuptools_scm *
environment.yml pypi
  • absl-py ==2.0.0
  • anyio ==4.1.0
  • appdirs ==1.4.4
  • argon2-cffi ==23.1.0
  • argon2-cffi-bindings ==21.2.0
  • arrow ==1.3.0
  • asttokens ==2.4.1
  • async-lru ==2.0.4
  • attrs ==23.1.0
  • babel ==2.13.1
  • beautifulsoup4 ==4.12.2
  • bleach ==6.1.0
  • cachetools ==5.3.2
  • certifi ==2022.12.7
  • cffi ==1.16.0
  • charset-normalizer ==2.1.1
  • click ==8.1.7
  • cmake ==3.25.0
  • comm ==0.2.0
  • contourpy ==1.2.0
  • cycler ==0.12.1
  • debugpy ==1.8.0
  • decorator ==5.1.1
  • deepwave ==0.0.20
  • defusedxml ==0.7.1
  • docker-pycreds ==0.4.0
  • einops ==0.7.0
  • exceptiongroup ==1.2.0
  • executing ==2.0.1
  • fastjsonschema ==2.19.0
  • filelock ==3.9.0
  • fonttools ==4.45.1
  • fqdn ==1.5.1
  • gitdb ==4.0.11
  • gitpython ==3.1.40
  • google-auth ==2.23.4
  • google-auth-oauthlib ==1.1.0
  • grpcio ==1.59.3
  • h5py ==3.10.0
  • idna ==3.4
  • imageio ==2.33.0
  • importlib-metadata ==6.8.0
  • importlib-resources ==6.1.1
  • ipykernel ==6.27.1
  • ipython ==8.18.1
  • ipywidgets ==8.1.1
  • isoduration ==20.11.0
  • jedi ==0.19.1
  • jinja2 ==3.1.2
  • json5 ==0.9.14
  • jsonpointer ==2.4
  • jsonschema ==4.20.0
  • jsonschema-specifications ==2023.11.1
  • jupyter ==1.0.0
  • jupyter-client ==8.6.0
  • jupyter-console ==6.6.3
  • jupyter-core ==5.5.0
  • jupyter-events ==0.9.0
  • jupyter-lsp ==2.2.1
  • jupyter-server ==2.11.1
  • jupyter-server-terminals ==0.4.4
  • jupyterlab ==4.0.9
  • jupyterlab-pygments ==0.3.0
  • jupyterlab-server ==2.25.2
  • jupyterlab-widgets ==3.0.9
  • kiwisolver ==1.4.5
  • lazy-loader ==0.3
  • lit ==15.0.7
  • markdown ==3.5.1
  • markupsafe ==2.1.3
  • matplotlib ==3.8.2
  • matplotlib-inline ==0.1.6
  • mistune ==3.0.2
  • mpmath ==1.3.0
  • nbclient ==0.9.0
  • nbconvert ==7.11.0
  • nbformat ==5.9.2
  • nest-asyncio ==1.5.8
  • networkx ==3.0
  • ninja ==1.11.1.1
  • notebook ==7.0.6
  • notebook-shim ==0.2.3
  • numpy ==1.24.1
  • nvidia-cublas-cu11 ==11.10.3.66
  • nvidia-cuda-cupti-cu11 ==11.7.101
  • nvidia-cuda-nvrtc-cu11 ==11.7.99
  • nvidia-cuda-runtime-cu11 ==11.7.99
  • nvidia-cudnn-cu11 ==8.5.0.96
  • nvidia-cufft-cu11 ==10.9.0.58
  • nvidia-curand-cu11 ==10.2.10.91
  • nvidia-cusolver-cu11 ==11.4.0.1
  • nvidia-cusparse-cu11 ==11.7.4.91
  • nvidia-nccl-cu11 ==2.14.3
  • nvidia-nvtx-cu11 ==11.7.91
  • oauthlib ==3.2.2
  • overrides ==7.4.0
  • pandas ==2.1.3
  • pandocfilters ==1.5.0
  • parso ==0.8.3
  • pexpect ==4.9.0
  • pillow ==9.3.0
  • platformdirs ==4.0.0
  • prometheus-client ==0.19.0
  • prompt-toolkit ==3.0.41
  • protobuf ==4.23.4
  • psutil ==5.9.6
  • ptyprocess ==0.7.0
  • pure-eval ==0.2.2
  • pyasn1 ==0.5.1
  • pyasn1-modules ==0.3.0
  • pycparser ==2.21
  • pygments ==2.17.2
  • pyparsing ==3.1.1
  • python-dateutil ==2.8.2
  • python-json-logger ==2.0.7
  • pytz ==2023.3.post1
  • pyyaml ==6.0.1
  • pyzmq ==25.1.1
  • qtconsole ==5.5.1
  • qtpy ==2.4.1
  • referencing ==0.31.1
  • requests ==2.31.0
  • requests-oauthlib ==1.3.1
  • rfc3339-validator ==0.1.4
  • rfc3986-validator ==0.1.1
  • rpds-py ==0.13.2
  • rsa ==4.9
  • scikit-image ==0.22.0
  • scipy ==1.11.4
  • send2trash ==1.8.2
  • sentry-sdk ==1.38.0
  • setproctitle ==1.3.3
  • six ==1.16.0
  • smmap ==5.0.1
  • sniffio ==1.3.0
  • soupsieve ==2.5
  • stack-data ==0.6.3
  • sympy ==1.12
  • tensorboard ==2.15.1
  • tensorboard-data-server ==0.7.2
  • terminado ==0.18.0
  • tifffile ==2023.9.26
  • tinycss2 ==1.2.1
  • tomli ==2.0.1
  • tornado ==6.4
  • tqdm ==4.66.1
  • traitlets ==5.14.0
  • triton ==2.0.0
  • types-python-dateutil ==2.8.19.14
  • typing-extensions ==4.4.0
  • tzdata ==2023.3
  • uri-template ==1.3.0
  • urllib3 ==1.26.13
  • wandb ==0.16.0
  • wcwidth ==0.2.12
  • webcolors ==1.13
  • webencodings ==0.5.1
  • websocket-client ==1.6.4
  • werkzeug ==3.0.1
  • widgetsnbextension ==4.0.9
  • zipp ==3.17.0