GPJax

GPJax: A Gaussian Process Framework in JAX - Published in JOSS (2022)

https://github.com/JaxGaussianProcesses/GPJax

Science Score: 77.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
    Found 7 DOI reference(s) in README
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
    7 of 35 committers (20.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.8%) to scientific vocabulary

Keywords

bayesian-inference gaussian-processes jax machine-learning probabilistic-programming

Keywords from Contributors

mcmc exoplanets mesh simulations

Scientific Fields

Mathematics Computer Science - 84% confidence
Earth and Environmental Sciences Physical Sciences - 62% confidence
Last synced: 4 months ago · JSON representation ·

Repository

Gaussian processes in JAX and Flax.

Basic Info
Statistics
  • Stars: 530
  • Watchers: 4
  • Forks: 64
  • Open Issues: 6
  • Releases: 44
Topics
bayesian-inference gaussian-processes jax machine-learning probabilistic-programming
Created over 5 years ago · Last pushed 4 months ago
Metadata Files
Readme Contributing License Code of conduct Citation Governance

README.md

GPJax's logo

codecov CodeFactor Netlify Status PyPI version DOI Downloads Slack Invite

Quickstart | Install guide | Documentation | Slack Community

GPJax aims to provide a low-level interface to Gaussian process (GP) models in Jax, structured to give researchers maximum flexibility in extending the code to suit their own needs. The idea is that the code should be as close as possible to the maths we write on paper when working with GP models.

Package organisation

Contributions

We would be delighted to receive contributions from interested individuals and groups. To learn how you can get involved, please read our guide for contributing. If you have any questions, we encourage you to open an issue. For broader conversations, such as best GP fitting practices or questions about the mathematics of GPs, we invite you to open a discussion.

Another way you can contribute to GPJax is through issue triaging. This can include reproducing bug reports, asking for vital information such as version numbers and reproduction instructions, or identifying stale issues. If you would like to begin triaging issues, an easy way to get started is to subscribe to GPJax on CodeTriage.

As a contributor to GPJax, you are expected to abide by our code of conduct. If you feel that you have either experienced or witnessed behaviour that violates this standard, then we ask that you report any such behaviours through this form or reach out to one of the project's gardeners.

Feel free to join our Slack Channel, where we can discuss the development of GPJax and broader support for Gaussian process modelling.

Governance

GPJax was founded by Thomas Pinder. Today, the project's gardeners are daniel-dodd@, henrymoss@, st--@, and thomaspinder@, listed in alphabetical order. The full governance structure of GPJax is detailed here. We appreciate all the contributors to GPJax who have helped to shape GPJax into the package it is today.

Supported methods and interfaces

Notebook examples

Guides for customisation

Conversion between .ipynb and .py

Above examples are stored in examples directory in the double percent (py:percent) format. Checkout jupytext using-cli for more info.

  • To convert example.py to example.ipynb, run:

bash jupytext --to notebook example.py

  • To convert example.ipynb to example.py, run:

bash jupytext --to py:percent example.ipynb

Installation

Stable version

The latest stable version of GPJax can be installed via pip:

bash pip install gpjax

Note

We recommend you check your installation version: python python -c 'import gpjax; print(gpjax.__version__)'

Development version

Warning

This version is possibly unstable and may contain bugs.

Note

We advise you create virtual environment before installing: conda create -n gpjax_experimental python=3.10.0 conda activate gpjax_experimental

Clone a copy of the repository to your local machine and run the setup configuration in development mode. bash git clone https://github.com/JaxGaussianProcesses/GPJax.git cd GPJax hatch env create hatch shell

We recommend you check your installation passes the supplied unit tests:

python hatch run dev:test

Citing GPJax

If you use GPJax in your research, please cite our JOSS paper.

@article{Pinder2022, doi = {10.21105/joss.04455}, url = {https://doi.org/10.21105/joss.04455}, year = {2022}, publisher = {The Open Journal}, volume = {7}, number = {75}, pages = {4455}, author = {Thomas Pinder and Daniel Dodd}, title = {GPJax: A Gaussian Process Framework in JAX}, journal = {Journal of Open Source Software} }

Owner

  • Name: JaxGaussianProcesses
  • Login: JaxGaussianProcesses
  • Kind: organization

Citation (CITATION.bib)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Pinder"
  given-names: "Thomas"
  orcid: "https://orcid.org/0000-0001-9854-4265"
- family-names: "Dodd"
  given-names: "Daniel"
title: "GPJax: A Gaussian Process Framework in JAX"
version: 0.5.9
doi: 10.21105/joss.04455
date-released: 2022-06-26
url: "https://github.com/thomaspinder/GPJax"
preferred-citation:
  type: article
  authors:
  - family-names: "Pinder"
    given-names: "Thomas"
  - family-names: "Dodd"
    given-names: "Daniel"
  doi: "10.21105/joss.04455"
  journal: "Journal of Open Source Software"
  month: 6
  start: 4455
  end: 4455
  title: "GPJax: A Gaussian Process Framework in JAX"
  issue: 75
  volume: 7
  year: 2022

GitHub Events

Total
  • Create event: 18
  • Release event: 5
  • Issues event: 33
  • Watch event: 68
  • Delete event: 8
  • Issue comment event: 112
  • Push event: 76
  • Pull request review event: 16
  • Pull request event: 52
  • Fork event: 13
Last Year
  • Create event: 18
  • Release event: 5
  • Issues event: 33
  • Watch event: 68
  • Delete event: 8
  • Issue comment event: 112
  • Push event: 76
  • Pull request review event: 16
  • Pull request event: 52
  • Fork event: 13

Committers

Last synced: 6 months ago

All Time
  • Total Commits: 1,177
  • Total Committers: 35
  • Avg Commits per committer: 33.629
  • Development Distribution Score (DDS): 0.562
Past Year
  • Commits: 59
  • Committers: 12
  • Avg Commits per committer: 4.917
  • Development Distribution Score (DDS): 0.644
Top Committers
Name Email Commits
Thomas Pinder t****r@l****k 515
Daniel Dodd d****d@i****m 251
Thomas Pinder p****2@l****k 155
jejjohnson e****1@g****m 38
Thomas-Christie t****h@h****m 36
hmoss 3****s 34
Ingmar Schuster i****r@g****m 32
frazane z****o@g****m 21
Miguel González Duque m****u@g****m 14
Stephen Huan s****n@c****e 10
st-- s****- 9
Daniel Dodd 6****d 8
patel-zeel p****l@i****n 6
Stefano 4****s 6
meta-inf w****6@g****m 4
neel-maniar 9****r 4
dependabot[bot] 4****] 4
henrymoss h****s@l****k 4
theorashid 3****d 3
Ivan Shalashilin i****n@d****k 3
Ivan Shalashilin i****n@d****k 3
Ivan Shalashilin i****n@d****k 2
Tom Savage t****e@h****m 2
wejpurvis w****0@g****m 2
Dan Foreman-Mackey d****m@d****o 1
Radu Corcodel c****l@m****m 1
Jon Deaton j****n@g****m 1
Ivan Shalashilin i****n@d****k 1
Danny Friar d****r@h****k 1
Erik m****l@e****m 1
and 5 more...

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 129
  • Total pull requests: 269
  • Average time to close issues: 8 months
  • Average time to close pull requests: about 1 month
  • Total issue authors: 39
  • Total pull request authors: 29
  • Average comments per issue: 1.8
  • Average comments per pull request: 0.82
  • Merged pull requests: 190
  • Bot issues: 0
  • Bot pull requests: 19
Past Year
  • Issues: 16
  • Pull requests: 62
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 7 days
  • Issue authors: 13
  • Pull request authors: 10
  • Average comments per issue: 2.5
  • Average comments per pull request: 0.84
  • Merged pull requests: 46
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • thomaspinder (45)
  • daniel-dodd (32)
  • Thomas-Christie (5)
  • ingmarschuster (5)
  • theo-brown (3)
  • patel-zeel (3)
  • st-- (2)
  • adam-hartshorne (2)
  • james-bowden (2)
  • VadimBim (1)
  • ahwillia (1)
  • ChrisBoettner (1)
  • joelberkeley (1)
  • frazane (1)
  • mikkelbue (1)
Pull Request Authors
  • thomaspinder (82)
  • daniel-dodd (26)
  • frazane (20)
  • dependabot[bot] (19)
  • Thomas-Christie (19)
  • henrymoss (13)
  • stefanocortinovis (12)
  • stephen-huan (12)
  • neel-maniar (10)
  • st-- (10)
  • ingmarschuster (8)
  • theo-brown (8)
  • brandall25 (4)
  • juanitorduz (2)
  • meta-inf (2)
Top Labels
Issue Labels
enhancement (83) stale (40) bug (33) good first issue (25) documentation (12) help wanted (9) help-wanted (7) no-stale (7) testing (4) performance (1)
Pull Request Labels
enhancement (30) documentation (22) dependencies (19) python (16) stale (12) bug (8) testing (4) github_actions (3) performance (2) work-in-progress (2) breaking (2) build (2) help wanted (2) ci (1) style (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 2,393 last-month
  • Total dependent packages: 6
  • Total dependent repositories: 2
  • Total versions: 70
  • Total maintainers: 1
pypi.org: gpjax

Gaussian processes in JAX.

  • Versions: 70
  • Dependent Packages: 6
  • Dependent Repositories: 2
  • Downloads: 2,393 Last month
Rankings
Dependent packages count: 1.6%
Stargazers count: 3.6%
Average: 6.0%
Forks count: 6.4%
Downloads: 6.8%
Dependent repos count: 11.9%
Maintainers (1)
Last synced: 4 months ago

Dependencies

.github/workflows/build_docs.yml actions
  • JamesIves/github-pages-deploy-action v4.4.1 composite
  • actions/checkout v3.5.2 composite
  • actions/setup-node v3 composite
  • conda-incubator/setup-miniconda v2 composite
  • snok/install-poetry v1 composite
.github/workflows/integration.yml actions
  • actions/checkout v3.5.2 composite
  • actions/setup-python v4 composite
  • snok/install-poetry v1.3.3 composite
.github/workflows/labeler.yml actions
  • actions/checkout v3.5.2 composite
  • crazy-max/ghaction-github-labeler v4.1.0 composite
.github/workflows/pr_greeting.yml actions
  • actions/first-interaction v1 composite
.github/workflows/ruff.yml actions
  • actions/checkout v3.5.2 composite
  • chartboost/ruff-action v1 composite
.github/workflows/test_docs.yml actions
  • actions/checkout v3.5.2 composite
  • actions/setup-node v3 composite
  • conda-incubator/setup-miniconda v2 composite
  • snok/install-poetry v1 composite
.github/workflows/tests.yml actions
  • actions/checkout v3.5.2 composite
  • actions/setup-python v4 composite
  • codecov/codecov-action v3 composite
  • snok/install-poetry v1.3.3 composite
poetry.lock pypi
  • 232 dependencies
pyproject.toml pypi
  • beartype ^0.16.2
  • cola-ml ^0.0.5
  • jax >=0.4.10
  • jaxlib >=0.4.10
  • jaxopt ^0.8.2
  • jaxtyping ^0.2.15
  • optax ^0.1.4
  • orbax-checkpoint >=0.2.3
  • python >=3.10,<3.12
  • simple-pytree ^0.1.7
  • tensorflow-probability ^0.19.0
  • tqdm ^4.65.0