mirror of
https://github.com/SheffieldML/GPy.git
synced 2026-04-29 06:46:22 +02:00
61 lines
2 KiB
Python
61 lines
2 KiB
Python
from nose.tools import with_setup
|
|
from GPy.models import GradientChecker
|
|
from GPy.likelihoods.noise_models import gp_transformations
|
|
import inspect
|
|
import unittest
|
|
import numpy as np
|
|
|
|
class TestTransformations(object):
|
|
"""
|
|
Generic transformations checker
|
|
"""
|
|
def setUp(self):
|
|
N = 30
|
|
self.fs = [np.random.rand(N, 1), float(np.random.rand(1))]
|
|
|
|
|
|
def tearDown(self):
|
|
self.fs = None
|
|
|
|
def test_transformations(self):
|
|
self.setUp()
|
|
transformations = [gp_transformations.Identity(),
|
|
gp_transformations.Log(),
|
|
gp_transformations.Probit(),
|
|
gp_transformations.Log_ex_1(),
|
|
gp_transformations.Reciprocal(),
|
|
]
|
|
|
|
for transformation in transformations:
|
|
for f in self.fs:
|
|
yield self.t_dtransf_df, transformation, f
|
|
yield self.t_d2transf_df2, transformation, f
|
|
yield self.t_d3transf_df3, transformation, f
|
|
|
|
@with_setup(setUp, tearDown)
|
|
def t_dtransf_df(self, transformation, f):
|
|
print "\n{}".format(inspect.stack()[0][3])
|
|
grad = GradientChecker(transformation.transf, transformation.dtransf_df, f, 'f')
|
|
grad.randomize()
|
|
grad.checkgrad(verbose=1)
|
|
assert grad.checkgrad()
|
|
|
|
@with_setup(setUp, tearDown)
|
|
def t_d2transf_df2(self, transformation, f):
|
|
print "\n{}".format(inspect.stack()[0][3])
|
|
grad = GradientChecker(transformation.dtransf_df, transformation.d2transf_df2, f, 'f')
|
|
grad.randomize()
|
|
grad.checkgrad(verbose=1)
|
|
assert grad.checkgrad()
|
|
|
|
@with_setup(setUp, tearDown)
|
|
def t_d3transf_df3(self, transformation, f):
|
|
print "\n{}".format(inspect.stack()[0][3])
|
|
grad = GradientChecker(transformation.d2transf_df2, transformation.d3transf_df3, f, 'f')
|
|
grad.randomize()
|
|
grad.checkgrad(verbose=1)
|
|
assert grad.checkgrad()
|
|
|
|
#if __name__ == "__main__":
|
|
#print "Running unit tests"
|
|
#unittest.main()
|