Skip to content

DeepWave-KAUST/GSFM_pub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LOGO

A Generative Foundation Model for an All-in-One Seismic Processing Framework

Shijun Cheng, Randy Harsuko, Tariq Alkhalifah

DeepWave Consortium, King Abdullah University of Science and Technology (KAUST)

Corresponding author: Shijun Cheng (sjcheng.academic@gmail.com)

Project structure

This repository is organized as follows:

  • 📂 gsfm: python code containing routines for generative seismic foundation model;
  • 📂 asset: folder containing logo;
  • 📂 dataset: folder to store dataset;

Supplementary files

To ensure reproducibility, we provide the the data set for pre-training stages and our pre-trainined model for GSFM. Field data is not shared here due to restricted permissions.

  • Pre-training data set Download the pre-training data set here. Then, use unzip to extract the contents to dataset/syn/train/.

  • Synthetic test data set Download the synthetic test data set here. Then, use unzip to extract the contents to dataset/syn/test/.

  • Pre-trained model Download our pre-trained GSFM model here. Then, extract the contents to /checkpoints_pretrain/.

Getting started 👾 🤖

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

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. Activate the environment by typing:

conda activate gsfm

After that you can simply install your package:

pip install .

or in developer mode:

pip install -e .

Running code 📄

When you have downloaded the supplementary files and have installed the environment, you can run the pre-training and fine-tuning code. For pretraning, you can directly run:

python pretrain.py

For fine-tuning, you need to decide which script to use based on the task you need to fine-tune, as follows

python denoise_finetune.py        # backscatted noise attenuation task
python interpolation_finetune.py  # interpolation task
python lowfreq_finetune.py        # low-frequency extrapolation task

When you test the performance of our pre-trained GSFM, you can use the synthetic test data we provide. If you want to directly predict without uncertainty quantification, you can directly run:

python sample.py

For prediction with uncertainty quantification, you can directly run:

python sample_with_uq.py

Disclaimer: All experiments have been carried on a Intel(R) Xeon(R) CPU @ 2.10GHz equipped with a single NVIDIA GEForce A100 GPU. Different environment configurations may be required for different combinations of workstation and GPU. If your graphics card does not large batch size training, please reduce the configuration value of args (batch_size) in the gsfm/pretrain.py file.

Acknowledgements

This implementation is motivated from the paper Improved Denoising Diffusion Probabilistic Models and the code adapted from their repository. We are grateful for their open source code.

Cite us

@article{cheng2025gsfm,
  title={A generative foundation model for an all-in-one seismic processing framework},
  author={Cheng, Shijun and Harsuko, Randy and Alkhalifah, Tariq},
  journal={Surveys in Geophysics},
  year={2025},
  publisher={Springer}
}

About

Official reproducible material for: A generative foundation model for an all-in-one seismic processing framework

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published