import not relative in tests

This commit is contained in:
James Hensman 2014-03-13 10:23:07 +00:00
parent b87e25d031
commit 4d00b9db03
2 changed files with 10 additions and 10 deletions

View file

@ -73,7 +73,7 @@ class IndependentOutputs(Kern):
slices = index_to_slices(X[:,self.index_dim]) slices = index_to_slices(X[:,self.index_dim])
if X2 is None: if X2 is None:
[[collate_grads(dL_dK[s,s], X[s], None) for s in slices_i] for slices_i in slices] [[collate_grads(dL_dK[s,ss], X[s], X[ss]) for s,ss in itertools.product(slices_i, slices_i)] for slices_i in slices]
else: else:
slices2 = index_to_slices(X2[:,self.index_dim]) slices2 = index_to_slices(X2[:,self.index_dim])
[[[collate_grads(dL_dK[s,s2],X[s],X2[s2]) for s in slices_i] for s2 in slices_j] for slices_i,slices_j in zip(slices,slices2)] [[[collate_grads(dL_dK[s,s2],X[s],X2[s2]) for s in slices_i] for s2 in slices_j] for slices_i,slices_j in zip(slices,slices2)]
@ -83,10 +83,10 @@ class IndependentOutputs(Kern):
target = np.zeros_like(X) target = np.zeros_like(X)
slices = index_to_slices(X[:,self.index_dim]) slices = index_to_slices(X[:,self.index_dim])
if X2 is None: if X2 is None:
[[np.copyto(target[s,:-1], self.kern.gradients_X(dL_dK[s,s],X[s],None)) for s in slices_i] for slices_i in slices] [[np.copyto(target[s,self.kern.active_dims], self.kern.gradients_X(dL_dK[s,s],X[s],X[ss])) for s, ss in product(slices_i, slices_i)] for slices_i in slices]
else: else:
X2,slices2 = X2[:,:-1],index_to_slices(X2[:,-1]) X2,slices2 = X2[:,:self.index_dim],index_to_slices(X2[:,-1])
[[[np.copyto(target[s,:-1], self.kern.gradients_X(dL_dK[s,s2], X[s], X2[s2])) for s in slices_i] for s2 in slices_j] for slices_i,slices_j in zip(slices,slices2)] [[[np.copyto(target[s,:self.index_dim], self.kern.gradients_X(dL_dK[s,s2], X[s], X2[s2])) for s in slices_i] for s2 in slices_j] for slices_i,slices_j in zip(slices,slices2)]
return target return target
def gradients_X_diag(self, dL_dKdiag, X): def gradients_X_diag(self, dL_dKdiag, X):
@ -95,12 +95,12 @@ class IndependentOutputs(Kern):
[[np.copyto(target[s,:-1], self.kern.gradients_X_diag(dL_dKdiag[s],X[s])) for s in slices_i] for slices_i in slices] [[np.copyto(target[s,:-1], self.kern.gradients_X_diag(dL_dKdiag[s],X[s])) for s in slices_i] for slices_i in slices]
return target return target
def update_gradients_diag(self,dL_dKdiag,X,target): def update_gradients_diag(self, dL_dKdiag, X):
target = np.zeros(self.kern.size) target = np.zeros(self.kern.size)
def collate_grads(dL, X): def collate_grads(dL, X):
self.kern.update_gradients_diag(dL,X) self.kern.update_gradients_diag(dL,X)
self.target += self.kern.gradient target[:] += self.kern.gradient
X,slices = X[:,:-1],index_to_slices(X[:,-1]) slices = index_to_slices(X[:,self.index_dim])
[[collate_grads(dL_dKdiag[s], X[s,:]) for s in slices_i] for slices_i in slices] [[collate_grads(dL_dKdiag[s], X[s,:]) for s in slices_i] for slices_i in slices]
self.kern.gradient = target self.kern.gradient = target

View file

@ -1,11 +1,11 @@
import numpy as np import numpy as np
import unittest import unittest
import GPy import GPy
from ..models import GradientChecker from GPy.models import GradientChecker
import functools import functools
import inspect import inspect
from ..likelihoods import link_functions from GPy.likelihoods import link_functions
from ..core.parameterization import Param from GPy.core.parameterization import Param
from functools import partial from functools import partial
#np.random.seed(300) #np.random.seed(300)
#np.random.seed(7) #np.random.seed(7)