mirror of
https://github.com/SheffieldML/GPy.git
synced 2026-05-08 11:32:39 +02:00
Added verbose checks for likelihood
This commit is contained in:
parent
8ed9f0735a
commit
a79b800683
1 changed files with 16 additions and 21 deletions
|
|
@ -75,7 +75,7 @@ def dparam_checkgrad(func, dfunc, params, params_names, args, constraints=None,
|
||||||
if verbose:
|
if verbose:
|
||||||
print grad
|
print grad
|
||||||
grad.checkgrad(verbose=1)
|
grad.checkgrad(verbose=1)
|
||||||
if not grad.checkgrad():
|
if not grad.checkgrad(verbose=True):
|
||||||
gradchecking = False
|
gradchecking = False
|
||||||
|
|
||||||
return gradchecking
|
return gradchecking
|
||||||
|
|
@ -364,9 +364,8 @@ class TestNoiseModels(object):
|
||||||
dlogpdf_df = functools.partial(model.dlogpdf_df, y=Y)
|
dlogpdf_df = functools.partial(model.dlogpdf_df, y=Y)
|
||||||
grad = GradientChecker(logpdf, dlogpdf_df, f.copy(), 'g')
|
grad = GradientChecker(logpdf, dlogpdf_df, f.copy(), 'g')
|
||||||
grad.randomize()
|
grad.randomize()
|
||||||
grad.checkgrad(verbose=1)
|
|
||||||
print model
|
print model
|
||||||
assert grad.checkgrad()
|
assert grad.checkgrad(verbose=1)
|
||||||
|
|
||||||
@with_setup(setUp, tearDown)
|
@with_setup(setUp, tearDown)
|
||||||
def t_d2logpdf_df2(self, model, Y, f):
|
def t_d2logpdf_df2(self, model, Y, f):
|
||||||
|
|
@ -375,9 +374,8 @@ class TestNoiseModels(object):
|
||||||
d2logpdf_df2 = functools.partial(model.d2logpdf_df2, y=Y)
|
d2logpdf_df2 = functools.partial(model.d2logpdf_df2, y=Y)
|
||||||
grad = GradientChecker(dlogpdf_df, d2logpdf_df2, f.copy(), 'g')
|
grad = GradientChecker(dlogpdf_df, d2logpdf_df2, f.copy(), 'g')
|
||||||
grad.randomize()
|
grad.randomize()
|
||||||
grad.checkgrad(verbose=1)
|
|
||||||
print model
|
print model
|
||||||
assert grad.checkgrad()
|
assert grad.checkgrad(verbose=1)
|
||||||
|
|
||||||
@with_setup(setUp, tearDown)
|
@with_setup(setUp, tearDown)
|
||||||
def t_d3logpdf_df3(self, model, Y, f):
|
def t_d3logpdf_df3(self, model, Y, f):
|
||||||
|
|
@ -386,9 +384,8 @@ class TestNoiseModels(object):
|
||||||
d3logpdf_df3 = functools.partial(model.d3logpdf_df3, y=Y)
|
d3logpdf_df3 = functools.partial(model.d3logpdf_df3, y=Y)
|
||||||
grad = GradientChecker(d2logpdf_df2, d3logpdf_df3, f.copy(), 'g')
|
grad = GradientChecker(d2logpdf_df2, d3logpdf_df3, f.copy(), 'g')
|
||||||
grad.randomize()
|
grad.randomize()
|
||||||
grad.checkgrad(verbose=1)
|
|
||||||
print model
|
print model
|
||||||
assert grad.checkgrad()
|
assert grad.checkgrad(verbose=1)
|
||||||
|
|
||||||
##############
|
##############
|
||||||
# df_dparams #
|
# df_dparams #
|
||||||
|
|
@ -439,8 +436,8 @@ class TestNoiseModels(object):
|
||||||
|
|
||||||
grad.randomize()
|
grad.randomize()
|
||||||
print grad
|
print grad
|
||||||
grad.checkgrad(verbose=1)
|
print model
|
||||||
assert grad.checkgrad()
|
assert grad.checkgrad(verbose=1)
|
||||||
|
|
||||||
@with_setup(setUp, tearDown)
|
@with_setup(setUp, tearDown)
|
||||||
def t_d2logpdf_dlink2(self, model, Y, f, link_f_constraints):
|
def t_d2logpdf_dlink2(self, model, Y, f, link_f_constraints):
|
||||||
|
|
@ -454,9 +451,9 @@ class TestNoiseModels(object):
|
||||||
constraint('g', grad)
|
constraint('g', grad)
|
||||||
|
|
||||||
grad.randomize()
|
grad.randomize()
|
||||||
grad.checkgrad(verbose=1)
|
|
||||||
print grad
|
print grad
|
||||||
assert grad.checkgrad()
|
print model
|
||||||
|
assert grad.checkgrad(verbose=1)
|
||||||
|
|
||||||
@with_setup(setUp, tearDown)
|
@with_setup(setUp, tearDown)
|
||||||
def t_d3logpdf_dlink3(self, model, Y, f, link_f_constraints):
|
def t_d3logpdf_dlink3(self, model, Y, f, link_f_constraints):
|
||||||
|
|
@ -470,9 +467,9 @@ class TestNoiseModels(object):
|
||||||
constraint('g', grad)
|
constraint('g', grad)
|
||||||
|
|
||||||
grad.randomize()
|
grad.randomize()
|
||||||
grad.checkgrad(verbose=1)
|
|
||||||
print grad
|
print grad
|
||||||
assert grad.checkgrad()
|
print model
|
||||||
|
assert grad.checkgrad(verbose=1)
|
||||||
|
|
||||||
#################
|
#################
|
||||||
# dlink_dparams #
|
# dlink_dparams #
|
||||||
|
|
@ -535,13 +532,12 @@ class TestNoiseModels(object):
|
||||||
|
|
||||||
#m.optimize(max_iters=8)
|
#m.optimize(max_iters=8)
|
||||||
print m
|
print m
|
||||||
m.checkgrad(verbose=1, step=step)
|
|
||||||
#if not m.checkgrad(step=step):
|
#if not m.checkgrad(step=step):
|
||||||
#m.checkgrad(verbose=1, step=step)
|
#m.checkgrad(verbose=1, step=step)
|
||||||
#NOTE this test appears to be stochastic for some likelihoods (student t?)
|
#NOTE this test appears to be stochastic for some likelihoods (student t?)
|
||||||
# appears to all be working in test mode right now...
|
# appears to all be working in test mode right now...
|
||||||
#if isinstance(model, GPy.likelihoods.StudentT):
|
#if isinstance(model, GPy.likelihoods.StudentT):
|
||||||
assert m.checkgrad(step=step)
|
assert m.checkgrad(verbose=1, step=step)
|
||||||
|
|
||||||
###########
|
###########
|
||||||
# EP test #
|
# EP test #
|
||||||
|
|
@ -563,9 +559,8 @@ class TestNoiseModels(object):
|
||||||
constraints[param_num](name, m)
|
constraints[param_num](name, m)
|
||||||
|
|
||||||
m.randomize()
|
m.randomize()
|
||||||
m.checkgrad(verbose=1, step=step)
|
|
||||||
print m
|
print m
|
||||||
assert m.checkgrad(step=step)
|
assert m.checkgrad(verbose=1, step=step)
|
||||||
|
|
||||||
|
|
||||||
class LaplaceTests(unittest.TestCase):
|
class LaplaceTests(unittest.TestCase):
|
||||||
|
|
@ -616,8 +611,8 @@ class LaplaceTests(unittest.TestCase):
|
||||||
d2logpdf_df2 = functools.partial(self.gauss.d2logpdf_df2, y=self.Y)
|
d2logpdf_df2 = functools.partial(self.gauss.d2logpdf_df2, y=self.Y)
|
||||||
grad = GradientChecker(dlogpdf_df, d2logpdf_df2, self.f.copy(), 'g')
|
grad = GradientChecker(dlogpdf_df, d2logpdf_df2, self.f.copy(), 'g')
|
||||||
grad.randomize()
|
grad.randomize()
|
||||||
grad.checkgrad(verbose=1)
|
|
||||||
self.assertTrue(grad.checkgrad())
|
self.assertTrue(grad.checkgrad(verbose=1))
|
||||||
|
|
||||||
def test_laplace_log_likelihood(self):
|
def test_laplace_log_likelihood(self):
|
||||||
debug = False
|
debug = False
|
||||||
|
|
@ -705,8 +700,8 @@ class LaplaceTests(unittest.TestCase):
|
||||||
#Check they are checkgradding
|
#Check they are checkgradding
|
||||||
#m1.checkgrad(verbose=1)
|
#m1.checkgrad(verbose=1)
|
||||||
#m2.checkgrad(verbose=1)
|
#m2.checkgrad(verbose=1)
|
||||||
self.assertTrue(m1.checkgrad())
|
self.assertTrue(m1.checkgrad(verbose=True))
|
||||||
self.assertTrue(m2.checkgrad())
|
self.assertTrue(m2.checkgrad(verbose=True))
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
print "Running unit tests"
|
print "Running unit tests"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue