/ASVGP

Actually Sparse Variational Gaussian Processes implemented in GPlow

Primary LanguagePython

Actually Sparse Variational Gaussian Processes

image

This repository includes the official implementation of Actually Sparse Variational Gaussian processes, a sparse variational Gaussian process approximation, that utilises sparse linear algebra to efficiently scale low-dimensional Matern Gaussian processes to large numbers of datapoints.

Our implementation is built upon GPFlow and banded_matrices packages.

If you find this repository useful, please cite our paper

@inproceedings{cunningham2023actually,
  title={Actually Sparse Variational Gaussian Processes},
  author={Cunningham, Harry Jake and de Souza, Daniel Augusto and Takao, So and van der Wilk, Mark and Deisenroth, Marc Peter},
  booktitle={International Conference on Artificial Intelligence and Statistics},
  pages={10395--10408},
  year={2023},
  organization={PMLR}
}

Installation

Our package requires installation of a development branch of banded_matrices which is written in C++

  1. Create fresh conda environement
conda create -n venv python=3.7
conda activate venv
  1. Install tensorflow=2.4
pip install tensorflow==2.4
  1. Clone banded_matrices package
git clone --branch awav/fix-banded-hashable-tensor https://github.com/secondmind-labs/banded_matrices.git
cd banded_matrices
  1. Build python banded_matrices package (Note that his requires gcc version 7)
python setup.py sdist bdist_wheel
  1. Install banded_matrices package
pip install dist/banded_matrices-0.0.6-*.whl
  1. Install remaining requirements
pip install -r requirements.txt
pip install -e .