mirror of
https://github.com/SheffieldML/GPy.git
synced 2026-06-20 15:38:08 +02:00
edited coregionalize implementation
This commit is contained in:
parent
9081c8ee96
commit
f4718edfb8
2 changed files with 37 additions and 39 deletions
|
|
@ -360,43 +360,44 @@ class Coregionalize_weave_test(unittest.TestCase):
|
|||
"""
|
||||
Make sure that the coregionalize kernel work with and without weave enabled
|
||||
"""
|
||||
k = GPy.kern.coregionalize(1, output_dim=12)
|
||||
N1, N2 = 100, 200
|
||||
X = np.random.randint(0,12,(N1,1))
|
||||
X2 = np.random.randint(0,12,(N2,1))
|
||||
def setUp(self):
|
||||
self.k = GPy.kern.Coregionalize(1, output_dim=12)
|
||||
self.N1, self.N2 = 100, 200
|
||||
self.X = np.random.randint(0,12,(self.N1,1))
|
||||
self.X2 = np.random.randint(0,12,(self.N2,1))
|
||||
|
||||
#symmetric case
|
||||
dL_dK = np.random.randn(N1, N1)
|
||||
GPy.util.config.config.set('weave', 'working', True)
|
||||
K_weave = k.K(X)
|
||||
k.update_gradients_full(dL_dK, X)
|
||||
grads_weave = k.gradient.copy()
|
||||
def test_sym(self):
|
||||
dL_dK = np.random.randn(self.N1, self.N1)
|
||||
GPy.util.config.config.set('weave', 'working', 'True')
|
||||
K_weave = self.k.K(self.X)
|
||||
self.k.update_gradients_full(dL_dK, self.X)
|
||||
grads_weave = self.k.gradient.copy()
|
||||
|
||||
GPy.util.config.config.set('weave', 'working', False)
|
||||
K_numpy = k.K(X)
|
||||
k.update_gradients_full(dL_dK, X)
|
||||
grads_numpy = k.gradient.copy()
|
||||
GPy.util.config.config.set('weave', 'working', 'False')
|
||||
K_numpy = self.k.K(self.X)
|
||||
self.k.update_gradients_full(dL_dK, self.X)
|
||||
grads_numpy = self.k.gradient.copy()
|
||||
|
||||
self.assertTrue(np.allclose(K_numpy, K_weave))
|
||||
self.assertTrue(np.allclose(grads_numpy, grads_weave))
|
||||
self.assertTrue(np.allclose(K_numpy, K_weave))
|
||||
self.assertTrue(np.allclose(grads_numpy, grads_weave))
|
||||
|
||||
#non-symmetric case
|
||||
dL_dK = np.random.randn(N1, N2)
|
||||
GPy.util.config.config.set('weave', 'working', True)
|
||||
K_weave = k.K(X, X2)
|
||||
k.update_gradients_full(dL_dK, X, X2)
|
||||
grads_weave = k.gradient.copy()
|
||||
def test_nonsym(self):
|
||||
dL_dK = np.random.randn(self.N1, self.N2)
|
||||
GPy.util.config.config.set('weave', 'working', 'True')
|
||||
K_weave = self.k.K(self.X, self.X2)
|
||||
self.k.update_gradients_full(dL_dK, self.X, self.X2)
|
||||
grads_weave = self.k.gradient.copy()
|
||||
|
||||
GPy.util.config.config.set('weave', 'working', False)
|
||||
K_numpy = k.K(X, X2)
|
||||
k.update_gradients_full(dL_dK, X, X2)
|
||||
grads_numpy = k.gradient.copy()
|
||||
GPy.util.config.config.set('weave', 'working', 'False')
|
||||
K_numpy = self.k.K(self.X, self.X2)
|
||||
self.k.update_gradients_full(dL_dK, self.X, self.X2)
|
||||
grads_numpy = self.k.gradient.copy()
|
||||
|
||||
self.assertTrue(np.allclose(K_numpy, K_weave))
|
||||
self.assertTrue(np.allclose(grads_numpy, grads_weave))
|
||||
self.assertTrue(np.allclose(K_numpy, K_weave))
|
||||
self.assertTrue(np.allclose(grads_numpy, grads_weave))
|
||||
|
||||
#reset the weave state for any other tests
|
||||
GPy.util.config.config.set('weave', 'working', False)
|
||||
GPy.util.config.config.set('weave', 'working', 'False')
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue