Source code for stats.gaussianProcesses.eval


import pdb
import math
import torch
import scipy.stats

[docs]class GaussianProcess(object): def __init__(self, mean, kernel): self._mean = mean self._kernel = kernel def __call__(self, t, epsilon=1e-5): return self.eval(t=t, epsilon=epsilon)
[docs] def eval(self, t, epsilon=1e-5): mean = self._mean(t) cov = self._kernel.buildKernelMatrix(t) cov = cov + epsilon*torch.eye(cov.shape[0]) mn = scipy.stats.multivariate_normal(mean=mean, cov=cov) samples = torch.from_numpy(mn.rvs()) return samples
[docs] def mean(self, t): return self._mean(t)
[docs] def std(self, t): Kdiag = self._kernel.buildKernelMatrixDiag(t) std = torch.sqrt(Kdiag) return std