Skip to content

Gaussian Processes for Machine Learning in Julia

Welcome to JuliaGPs

JuliaGPs is an organisation interested in making Gaussian process models work well in the Julia programming language. The packages in this ecosystem are targeted at people who want to use Gaussian processes as Bayesian statistical models, or people who want to do methodological research on Gaussian processes.

If you're new to the organisation, you should develop an understanding of the core packages:

  1. KernelFunctions.jl
  2. GPLikelihoods.jl
  3. AbstractGPs.jl
  4. ApproximateGPs.jl

KernelFunctions and GPLikelihoods are low-level packages implementing APIs for kernel functions and observation likelihoods, respectively, and include implementations of the most common classes of kernels and likelihoods used in pratice. AbstractGPs and ApproximateGPs are higher-level packages that implement inference of full and sparse GPs. AbstractGPs is restricted to Gaussian likelihoods, while ApproximateGPs also allows for non-Gaussian ones. AbstractGPs dependends on KernelFunctions, while ApproximateGPs depends on AbstractGPs and additionally on GPLikelihoods. The lower-level packages are reexported, and thus to have the complete experience at your fingertips, you can just use ApproximateGPs. In order to develop an understanding of the ecosystem, however, it is best to study the packages in the above order 1-4.

These core packages are maintained jointly by all org members, and we try to ensure that they work well and are of a high standard. Consequently, you should expect to recieve good support when working with them, for example you should expect prompt responses when you open issues / pull requests.

You'll notice a variety of other packages in this organisation. These are all packages which depend on the above core packages in some way or another. Often they're developed by an org member to support their personal research agenda. They generally only have 1 or 2 maintainers, so you should expect a lower level of support.


While numerous people have contributed to the JuliaGPs ecosystem, core contributors (in alphabetical order) include David Widmann, Hong Ge, Ross Viljoen, Sharan Yalburgi, ST John, Théo Galy-Fajou, and Will Tebbutt


  1. KernelFunctions.jl KernelFunctions.jl Public

    Julia package for kernel functions for machine learning

    Julia 264 34

  2. AbstractGPs.jl AbstractGPs.jl Public

    Abstract types and methods for Gaussian Processes.

    Julia 208 20

  3. ApproximateGPs.jl ApproximateGPs.jl Public

    Approximations for Gaussian processes: sparse variational inducing point approximations, Laplace approximation, ...

    Julia 35 4

  4. GPLikelihoods.jl GPLikelihoods.jl Public

    Provides likelihood functions for Gaussian Processes.

    Julia 43 5


Showing 10 of 20 repositories

Top languages


Most used topics