All Projects → cics-nd → cnn-surrogate

cics-nd / cnn-surrogate

Licence: MIT License
Bayesian deep convolutional encoder-decoder networks for surrogate modeling and uncertainty quantification

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to cnn-surrogate

rans-uncertainty
Uncertainty Quantification of RANS Data-Driven Turbulence Modeling
Stars: ✭ 44 (-41.33%)
Mutual labels:  bayesian-surrogate, stein-variational-gradient-decent
UQpy
UQpy (Uncertainty Quantification with python) is a general purpose Python toolbox for modeling uncertainty in physical and mathematical systems.
Stars: ✭ 117 (+56%)
Mutual labels:  uncertainty-quantification
torchuq
A library for uncertainty quantification based on PyTorch
Stars: ✭ 88 (+17.33%)
Mutual labels:  uncertainty-quantification
Encoder-Forest
eForest: Reversible mapping between high-dimensional data and path rule identifiers using trees embedding
Stars: ✭ 22 (-70.67%)
Mutual labels:  encoder-decoder
korali
High-performance framework for uncertainty quantification, optimization and reinforcement learning.
Stars: ✭ 48 (-36%)
Mutual labels:  uncertainty-quantification
visual syntactic embedding video captioning
Source code of the paper titled *Improving Video Captioning with Temporal Composition of a Visual-Syntactic Embedding*
Stars: ✭ 23 (-69.33%)
Mutual labels:  encoder-decoder
pixel-decoder
A tool for running deep learning algorithms for semantic segmentation with satellite imagery
Stars: ✭ 68 (-9.33%)
Mutual labels:  encoder-decoder
ar-pde-cnn
Physics-constrained auto-regressive convolutional neural networks for dynamical PDEs
Stars: ✭ 49 (-34.67%)
Mutual labels:  bayesian-surrogate
python-keras-encoder-decoder-unet
A Keras project with similarly sized encoder-decoder and u-net networks applied to identifying cars
Stars: ✭ 13 (-82.67%)
Mutual labels:  encoder-decoder
recurrent-decoding-cell
[AAAI'20] Segmenting Medical MRI via Recurrent Decoding Cell (Spotlight)
Stars: ✭ 14 (-81.33%)
Mutual labels:  encoder-decoder
MidcurveNN
Computation of Midcurve of Thin Polygons using Neural Networks
Stars: ✭ 19 (-74.67%)
Mutual labels:  encoder-decoder
badsv
The official BaDSV specification and CLI. Ascend from your puny DSV files!
Stars: ✭ 50 (-33.33%)
Mutual labels:  encoder-decoder
Image-Caption
Using LSTM or Transformer to solve Image Captioning in Pytorch
Stars: ✭ 36 (-52%)
Mutual labels:  encoder-decoder
Variations-of-SFANet-for-Crowd-Counting
The official implementation of "Encoder-Decoder Based Convolutional Neural Networks with Multi-Scale-Aware Modules for Crowd Counting"
Stars: ✭ 78 (+4%)
Mutual labels:  encoder-decoder
ai-visual-storytelling-seq2seq
Implementation of seq2seq model for Visual Storytelling Challenge (VIST) http://visionandlanguage.net/VIST/index.html
Stars: ✭ 50 (-33.33%)
Mutual labels:  encoder-decoder
Image deionising auto encoder
Noise removal from images using Convolutional autoencoder
Stars: ✭ 34 (-54.67%)
Mutual labels:  encoder-decoder
ConvLSTM-PyTorch
ConvLSTM/ConvGRU (Encoder-Decoder) with PyTorch on Moving-MNIST
Stars: ✭ 202 (+169.33%)
Mutual labels:  encoder-decoder
Embedding
Embedding模型代码和学习笔记总结
Stars: ✭ 25 (-66.67%)
Mutual labels:  encoder-decoder
text-generation-transformer
text generation based on transformer
Stars: ✭ 36 (-52%)
Mutual labels:  encoder-decoder
laika
Experiments with satellite image data
Stars: ✭ 97 (+29.33%)
Mutual labels:  encoder-decoder

Bayesian Surrogate as Image-to-Image Regression

Bayesian Deep Convolutional Encoder-Decoder Networks for Surrogate Modeling and Uncertainty Quantification

Yinhao Zhu, Nicholas Zabaras

PyTorch Implementation of Bayesian surrogate modeling for PDEs with high-dimensional stochstic input, such as permeability field, Young's modulus, etc.

KLE4225 (No dim reduction) KLE500 KLE50

The three columns in each image correspond to three output fields: (1) pressure field, (2)(3) velocities field in x and y axies. The four rows in each image from top to bottom show: (1) simulator output, (2) surrogate prediction (predictive mean), (3) error between simulator and prediction, (4) two standard devivation of prediction.

Dependencies

  • python 3 or 2
  • PyTorch 0.4
  • h5py
  • matplotlib
  • seaborn

Installation

  • Install PyTorch and other dependencies

  • Clone this repo:

git clone https://github.com/cics-nd/cnn-surrogate.git
cd cnn-surrogate

Dataset

Download Darcy flow simulation dataset with input Gaussian random field (with exponential kernel) and three output fields (pressure and velocities fields).

Download KLE4225 dataset:

bash ./scripts/download_dataset.sh 4225

Change 4225 to 500, 50 to download KLE500, KLE50 datasets. Data is saved at ./dataset/.

Number of training data within each dataset:

  • KLE50: [32, 64, 128, 256],
  • KLE500: [64, 128, 256, 512],
  • KLE4225: [128, 256, 512, 1024].

Number of test data: 500. Number of Monte Carlo sampling data: 10,000.

KLE4225 KLE500 KLE50

Start with a Pre-trained Model

Download a pre-trained model:

bash ./scripts/download_checkpoints.sh 4225 256

where 4225 and 256 refer to the intrinsic input dimensionality of dataset and number of training data. The pre-trained model is downloaded to the same location (./experiments/Bayesian/*/) as if it was trained on local machines. You may proceed to use the pre-trained model for UQ tasks.

Uncertainty Quantification (UQ)

Perform UQ tasks, including:

  • Prediction at one input realization
  • Uncertainty propagation
  • Distribution estimate
  • Uncertainty quality assessment (realiability diagram)
python post_proc.py --post --kle 4225 --ntrain 256

Do not forget to add the --post switch. For KLE4225 with 128 data, --epochs should be set to 400 to show convergence.

Training

Deterministic Surrogate

Train a non-Bayesian surroagte (e.g. with 256 data from KLE4225 dataset):

python train_det.py --kle 4225 --ntrain 256

The runs are saved at ./experiments/deterministic.

Bayesian Surrogate

Train a Bayesian surrogate (e.g. with 256 data from KLE4225 dataset using SVGD with 20 samples):

python train_svgd.py --kle 4225 --ntrain 256 --n-samples 20

The runs are saved at ./experiments/Bayesian. It takes 1-2 hours to train a Bayesian surrogate with 256-512 training data (20 samples, 300 epochs, batch-size 16) on a single GPU.

Citation

If you find this repo useful for your research, please consider to cite:

@article{ZHU2018415,
title = "Bayesian deep convolutional encoder–decoder networks for surrogate modeling and uncertainty quantification",
journal = "Journal of Computational Physics",
volume = "366",
pages = "415 - 447",
year = "2018",
issn = "0021-9991",
doi = "https://doi.org/10.1016/j.jcp.2018.04.018",
url = "http://www.sciencedirect.com/science/article/pii/S0021999118302341",
author = "Yinhao Zhu and Nicholas Zabaras"
}

Acknowledgments

Thanks Dr. Steven Atkinson for providing Darcy flow simulation dataset.

Code is inspired by pix2pix.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].