ptgp#
A Gaussian process library for building GP models that solve real-world problems. Built on PyTensor’s symbolic graph and rewrite system, with PyMC priors and native optimizers.
ptgp ships exact GPs, sparse VFE, SVGP with minibatch training, and Fourier
features; a full kernel library with composition and active_dims;
non-Gaussian likelihoods; and a training toolbox with L-BFGS-B and Adam,
per-parameter learning rates, staged optimization, and inducing-point
initialization.
Quick install#
pip install -e .
Requires PyTensor from main and PyMC >= 6.0. See the
installation guide for details.
Quick example#
import numpy as np
import pymc as pm
import pytensor.tensor as pt
import ptgp as pg
X = np.random.randn(200, 1)
y = np.sin(X.ravel()) + 0.1 * np.random.randn(200)
Z = np.linspace(-2, 2, 20)[:, None]
with pm.Model() as model:
ls = pm.InverseGamma("ls", alpha=2.0, beta=1.0)
eta = pm.Exponential("eta", lam=1.0)
kernel = eta**2 * pg.kernels.Matern52(input_dim=1, ls=ls)
vp = pg.gp.init_variational_params(M=20)
svgp = pg.gp.SVGP(
kernel=kernel,
likelihood=pg.likelihoods.Gaussian(sigma=0.1),
inducing_variable=pg.inducing.Points(pt.as_tensor(Z)),
variational_params=vp,
)
See the example gallery for full end-to-end walkthroughs.