mirror of
https://github.com/SheffieldML/GPy.git
synced 2026-05-08 11:32:39 +02:00
some tests for the svgp, and some changes to the likelihoods
This commit is contained in:
parent
53081c704d
commit
534e0df606
3 changed files with 37 additions and 3 deletions
|
|
@ -77,7 +77,7 @@ class Bernoulli(Likelihood):
|
||||||
|
|
||||||
return Z_hat, mu_hat, sigma2_hat
|
return Z_hat, mu_hat, sigma2_hat
|
||||||
|
|
||||||
def variational_expectations(self, Y, m, v, gh_points=None):
|
def variational_expectations(self, Y, m, v, gh_points=None, Y_metadata=None):
|
||||||
if isinstance(self.gp_link, link_functions.Probit):
|
if isinstance(self.gp_link, link_functions.Probit):
|
||||||
|
|
||||||
if gh_points is None:
|
if gh_points is None:
|
||||||
|
|
|
||||||
|
|
@ -35,8 +35,8 @@ class StudentT(Likelihood):
|
||||||
|
|
||||||
self.log_concave = False
|
self.log_concave = False
|
||||||
|
|
||||||
def parameters_changed(self):
|
#def parameters_changed(self):
|
||||||
self.variance = (self.v / float(self.v - 2)) * self.sigma2
|
#self.variance = (self.v / float(self.v - 2)) * self.sigma2
|
||||||
|
|
||||||
def update_gradients(self, grads):
|
def update_gradients(self, grads):
|
||||||
"""
|
"""
|
||||||
|
|
|
||||||
34
GPy/testing/svgp_tests.py
Normal file
34
GPy/testing/svgp_tests.py
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
import numpy as np
|
||||||
|
import scipy as sp
|
||||||
|
import GPy
|
||||||
|
|
||||||
|
class SVGP_nonconvex(np.testing.TestCase):
|
||||||
|
"""
|
||||||
|
Inference in the SVGP with a student-T likelihood
|
||||||
|
"""
|
||||||
|
def setUp(self):
|
||||||
|
X = np.linspace(0,10,100).reshape(-1,1)
|
||||||
|
Z = np.linspace(0,10,10).reshape(-1,1)
|
||||||
|
Y = np.sin(X) + np.random.randn(*X.shape)*0.1
|
||||||
|
Y[50] += 3
|
||||||
|
|
||||||
|
lik = GPy.likelihoods.StudentT(deg_free=2)
|
||||||
|
k = GPy.kern.RBF(1, lengthscale=5.) + GPy.kern.White(1, 1e-6)
|
||||||
|
self.m = GPy.core.SVGP(X, Y, Z=Z, likelihood=lik, kernel=k)
|
||||||
|
def test_grad(self):
|
||||||
|
assert self.m.checkgrad(step=1e-4)
|
||||||
|
|
||||||
|
class SVGP_classification(np.testing.TestCase):
|
||||||
|
"""
|
||||||
|
Inference in the SVGP with a Bernoulli likelihood
|
||||||
|
"""
|
||||||
|
def setUp(self):
|
||||||
|
X = np.linspace(0,10,100).reshape(-1,1)
|
||||||
|
Z = np.linspace(0,10,10).reshape(-1,1)
|
||||||
|
Y = np.where((np.sin(X) + np.random.randn(*X.shape)*0.1)>0, 1,0)
|
||||||
|
|
||||||
|
lik = GPy.likelihoods.Bernoulli()
|
||||||
|
k = GPy.kern.RBF(1, lengthscale=5.) + GPy.kern.White(1, 1e-6)
|
||||||
|
self.m = GPy.core.SVGP(X, Y, Z=Z, likelihood=lik, kernel=k)
|
||||||
|
def test_grad(self):
|
||||||
|
assert self.m.checkgrad(step=1e-4)
|
||||||
Loading…
Add table
Add a link
Reference in a new issue