Skip to main content

An implementation of Q-Exponential Processes in Pytorch based on GPyTorch

Project description

QPyTorch


Test Suite Documentation Status License

Python Version Conda PyPI

QPyTorch is a Q-exponential process library implemented using PyTorch built on GPyTorch. QPyTorch is designed for creating scalable, flexible, and modular Q-exponential process models with ease.

Internally, QPyTorch differs from many existing approaches to QEP inference by performing most inference operations using numerical linear algebra techniques like preconditioned conjugate gradients. Implementing a scalable QEP method is as simple as providing a matrix multiplication routine with the kernel matrix and its derivative via our LinearOperator interface, or by composing many of our already existing LinearOperators. This allows not only for easy implementation of popular scalable QEP techniques, but often also for significantly improved utilization of GPU computing compared to solvers based on the Cholesky decomposition.

QPyTorch provides (1) significant GPU acceleration (through MVM based inference); (2) state-of-the-art implementations of the latest algorithmic advances for scalability and flexibility (SKI/KISS-GP, stochastic Lanczos expansions, LOVE, SKIP, stochastic variational deep kernel learning, ...); (3) easy integration with deep learning frameworks.

Examples, Tutorials, and Documentation

See our documentation, examples, tutorials on how to construct all sorts of models in QPyTorch.

Installation

Requirements:

  • Python >= 3.10
  • PyTorch >= 2.2
  • GPyTorch >= 1.13

Install QPyTorch using pip or conda:

pip install qpytorch
conda install qpytorch -c qpytorch

(To use packages globally but install QPyTorch as a user-only package, use pip install --user above.)

Latest (Unstable) Version

To upgrade to the latest (unstable) version, run

pip install --upgrade git+https://github.com/cornellius-gp/linear_operator.git
pip install --upgrade git+https://github.com/cornellius-gp/gpytorch.git
pip install --upgrade git+https://github.com/lanzithinking/qepytorch.git

Development version

If you are contributing a pull request, it is best to perform a manual installation:

git clone https://github.com/lanzithinking/qepytorch.git qpytorch
cd qpytorch
pip install -e .[dev,docs,examples,keops,pyro,test]  # keops and pyro are optional

Citing Us

If you use QPyTorch, please cite the following papers:

Li, Shuyi, Michael O'Connor, and Shiwei Lan. "Bayesian Learning via Q-Exponential Process." In Advances in Neural Information Processing Systems (2023).

@inproceedings{li2023QEP,
  title={Bayesian Learning via Q-Exponential Process},
  author={Li, Shuyi, Michael O'Connor, and Shiwei Lan},
  booktitle={Advances in Neural Information Processing Systems},
  year={2023}
}

Contributing

See the contributing guidelines CONTRIBUTING.md for information on submitting issues and pull requests.

The Team

QPyTorch is primarily maintained by:

We would like to thank our other contributors including (but not limited to) Shuyi Li, Guangting Yu, Zhi Chang, Chukwudi Paul Obite, Keyan Wu, and many more!

Acknowledgements

Development of QPyTorch is supported by.

License

QPyTorch is MIT licensed.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qpytorch-0.1.tar.gz (2.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qpytorch-0.1-py3-none-any.whl (201.3 kB view details)

Uploaded Python 3

File details

Details for the file qpytorch-0.1.tar.gz.

File metadata

  • Download URL: qpytorch-0.1.tar.gz
  • Upload date:
  • Size: 2.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.18

File hashes

Hashes for qpytorch-0.1.tar.gz
Algorithm Hash digest
SHA256 006b6067fd1bfb1d2f108985b012d50b3ca82c031f06b2c978213bc9ce255aa8
MD5 7facc28c7ad1c4d45aaff05a9fcbc38d
BLAKE2b-256 060860daef697d274b5cf0c078034211201c0bd5395a60806c7a44c4eb73afc6

See more details on using hashes here.

File details

Details for the file qpytorch-0.1-py3-none-any.whl.

File metadata

  • Download URL: qpytorch-0.1-py3-none-any.whl
  • Upload date:
  • Size: 201.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.18

File hashes

Hashes for qpytorch-0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 31a8d878800165efeffc88ca49b74f505e7bc1fa436812b0c4f258996120e015
MD5 ac60bbb0ccbf45665144d097416daa9a
BLAKE2b-256 0b6bcd8bd84d449d924e887c3b9217f04f6dce5431bc49156ac225a548fd62dd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page