cornellius-gp / gpytorch

A highly efficient implementation of Gaussian Processes in PyTorch
MIT License
3.46k stars 545 forks source link

{Question} How to compute the posterior covariance matrix on the training data? #2532

Open r-ashwin opened 2 weeks ago

r-ashwin commented 2 weeks ago

Let's say I have a GP with n training points. How to compute the nxn covariance matrix on the training data with the posterior GP.

def fit_full_model(train_X, train_Y):
    train_Yvar = torch.ones_like(train_Y).reshape(-1,1) * 1E-4
    fullmodel = FixedNoiseGP(train_X, train_Y.reshape(-1,1), train_Yvar)
    return fullmodel

train_X = torch.linspace(0, 1, 100).reshape(-1,1)
train_Y = torch.sin(train_X).reshape(-1,1)
model = fit_full_model(train_X, train_Y)
model.eval()

I believe the covariance matrix is encoded as a lazy tensor and never actually evaluated. But I do need access to it for a specific application.