Skip to main content

dgpsi

GitHub release (latest by date including pre-releases) Conda Conda Read the Docs (version) GitHub R package version

For R users

The R interface to the package is available at dgpsi-R.

A Python package for deep and linked Gaussian process emulations using stochastic imputation (SI)

dgpsi currently implements:

  • Gaussian process emulations with separable or non-separable squared exponential and Matérn-2.5 kernels.
  • Deep Gaussian process emulation with flexible architecture construction:
    • multiple layers;
    • multiple GP nodes;
    • separable or non-separable squared exponential and Matérn2.5 kernels;
    • global input connections;
    • non-Gaussian likelihoods (Poisson, Negative-Binomial, heteroskedastic Gaussian, and categorical);
  • Linked emulation of feed-forward systems of computer models:
    • linking GP emulators of deterministic individual computer models;
    • linking GP and DGP emulators of deterministic individual computer models;
  • Multi-core predictions from GP, DGP, and Linked (D)GP emulators;
  • Fast Leave-One-Out (LOO) cross validations for GP and DGP emulators.
  • Calculations of ALM, MICE, and VIGF sequential design criterions.
  • Feature Badge Large-scale GP, DGP, and Linked (D)GP emulations.
  • Feature Badge Scalable DGP classification using Stochastic Imputation.

Installation

Release version

The current stable release of dgpsi supports Python versions 3.9, 3.10, 3.11, and 3.12. The stable release can be installed via pip:

pip install dgpsi

or conda:

conda install -c conda-forge dgpsi

However, to achieve the best computational performance of the package (e.g., on Apple Silicon), we recommend the following steps for the installation:

  • Download and install Miniforge3 that is compatible to your system from here.

  • Run the following command in your terminal app to create a virtual environment called dgp_si:

    conda create -n dgp_si python=3.9.13 
    
  • Activate and enter the Conda environment:

    conda activate dgp_si
    
  • Install dgpsi:

    • for Apple Silicon users, you could gain speed-up by switching to Apple's Accelerate framework:

      # for macOS <= 13.2
      conda install dgpsi "libblas=*=*accelerate"
      
      # for macOS >= 13.3
      conda install dgpsi "libblas=*=*newaccelerate"
      
    • for Intel users, you could gain speed-up by switching to MKL:

      conda install dgpsi "libblas=*=*mkl"
      
    • otherwise, simply run:

      conda install dgpsi
      

Development version

If you want to try the newest features and fixes before the next release, you can install the development build using the provided Conda environment YAMLs, which select the optimal BLAS and dependencies for your platform.

  • Clone the repository:

    git clone https://github.com/mingdeyu/DGP.git
    cd DGP
    
  • Pick the right environment file for your platform:

    Hardware / Platform BLAS backend YAML file
    Apple Silicon (macOS <= 13.2) Accelerate env-arm64-accelerate.yaml
    Apple Silicon (macOS >= 13.3) New Accelerate env-arm64-newaccelerate.yaml
    Intel CPU (macOS/Linux/Windows) MKL env-intel-mkl.yaml
    Other (Linux/Windows) OpenBLAS env-other-openblas.yaml
  • Create and activate the Conda environment:

    # replace the yaml filename with the one for your platform
    conda env create -f env-arm64-accelerate.yaml
    conda activate dgp_si_dev
    

    Tip: You can override the Conda environment name by appending -n <myenv> to the create command.

  • Install the dev version from your local clone:

    pip install --no-deps --no-build-isolation .
    

Demo and documentation

Please see demo for some illustrative examples of the method. The API reference of the package can be accessed from https://dgpsi.readthedocs.io.

Tips

  • Since SI is a stochastic inference, in case of unsatisfactory results, you may want to try to restart the training multiple times even with initial values of hyperparameters unchanged;
  • The recommended DGP structure is a two-layered one with the number of GP nodes in the first layer equal to the number of input dimensions (i.e., number of input columns) and the number of GP nodes in the second layer equal to the number of output dimensions (i.e., number of output columns) or the number of parameters in the specified likelihood.

Contact

Please feel free to email me with any questions and feedbacks:

Deyu Ming <deyu.ming.16@ucl.ac.uk>.

Research Notice

This package is part of an ongoing research initiative. For detailed information about the research aspects and guidelines for use, please refer to our Research Notice.

References

Ming, D. and Williamson, D. (2023) Linked deep Gaussian process emulation for model networks. arXiv:2306.01212.

Ming, D., Williamson, D., and Guillas, S. (2023) Deep Gaussian process emulation using stochastic imputation. Technometrics. 65(2), 150-161.

Ming, D. and Guillas, S. (2021) Linked Gaussian process emulation for systems of computer models using Matérn kernels and adaptive design, SIAM/ASA Journal on Uncertainty Quantification. 9(4), 1615-1642.

Metadata

Release files for dgpsi 2.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dgpsi 2.6.0
File Size Uploaded
dgpsi-2.6.0.tar.gz 66.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dgpsi 2.6.0
File Interpreter ABI Platform
dgpsi-2.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 135.0 kB

Release files / dgpsi-2.6.0.tar.gz

Download URL dgpsi-2.6.0.tar.gz
Size 66.4 kB
Tags Source
SHA-256 checksum
How to use checksums
30d373974153aff7db8e554043b97d4a24f2947f11abb4f1a10e074ad2a48b48
BLAKE2b-256 checksum
How to use checksums
8d223c4a97fbc7141923a9a657b0c2ea9d7e39168d6a9691c137a2b6900b82ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.23

Release files / dgpsi-2.6.0-py3-none-any.whl

Download URL dgpsi-2.6.0-py3-none-any.whl
Size 68.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
24bea55427d5001744fc9534eb1f932adba50a970d4850d7bd07d45a59ceafd9
BLAKE2b-256 checksum
How to use checksums
716fce062660372bd5903a70ad3cf61bc97dce3835c33fa5fc8db33da9af312a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.23

Release history Release notifications | RSS feed

This release

2.6.0 This release

2 release files

2.5.0

2 release files

2.4.0

2 release files

2.3.0

2 release files

2.2.0

2 release files

2.1.6

2 release files

2.1.5

2 release files

2.1.4

2 release files

2.1.3

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page