seismic-inversion
Seismic inversion using a neural network regulariser implemented as an ExternalOperator in Firedrake
Science Score: 54.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: arxiv.org, zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.0%) to scientific vocabulary
Keywords
Repository
Seismic inversion using a neural network regulariser implemented as an ExternalOperator in Firedrake
Basic Info
Statistics
- Stars: 12
- Watchers: 4
- Forks: 4
- Open Issues: 0
- Releases: 1
Topics
Metadata Files
README.md
Seismic inversion: Neural network regularisation using ExternalOperator
This repository is the official implementation of the seismic inversion example in "Escaping the abstraction: a foreign function interface for the Unified Form Language [UFL]", accepted at NeurIPS 2021 (Differentiable Programming workshop) and received the Best Paper award.
Requirements
In order to run the example, you need to have a working firedrake installation.
1) Instructions to install Firedrake can be found here.
2) To install additional requirements:
setup
pip install -r requirements.txt
Seismic inversion
The seismic inversion can be run via the seismic_inversion.py file. When running the file you can specify:
regulariser: An integer indicating the type of regularisation to take into account: (0: No regularisation, 1: Tikhonov, 2: Neural network)scale_noise: Scale factor applied on the noise to make the observed data from the exact solution.alpha: Regularisation factor
Run the command:
seismic_run
python seismic_inversion.py -regulariser {regulariser} -scale_noise {scale factor} -alpha {regularisation factor}
You can reproduce the figures of the article via:
seismic_run
python seismic_inversion.py -regulariser 0 1 2
Here are the corresponding figures:
Citation
If you found this work to be useful, then please cite: (arXiv paper)
bibtex
@article{bouziani-ham-2021-escaping,
author={Nacime Bouziani and David A. Ham},
title={Escaping the abstraction: a foreign function interface for the {Unified} {Form} {Language} [{UFL}]},
year={2021},
journal={Differentiable Programming workshop at Neural Information Processing Systems 2021}
}
Owner
- Name: Nacime Bouziani
- Login: nbouziani
- Kind: user
- Location: London
- Company: Imperial College London
- Repositories: 3
- Profile: https://github.com/nbouziani
President's PhD scholar at Imperial College London
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use this software, please cite it as below." authors: - family-names: "Bouziani" given-names: "Nacime" orcid: "https://orcid.org/0000-0002-1692-0173" - family-names: "Ham" given-names: "David" title: "Seismic inversion using neural network regularisation implemented as an ExternalOperator in Firedrake" version: 1.0 doi: 10.5281/zenodo.5526273 date-released: 2021-09-24 url: "https://github.com/nbouziani/seismic-inversion"
GitHub Events
Total
- Watch event: 1
Last Year
- Watch event: 1
Dependencies
- matplotlib ==3.0.3
- numpy ==1.16.3
- torch ==1.1.0