From d02f212612a563ae62a4da94886f1a0e893a824a Mon Sep 17 00:00:00 2001 From: Max Zwiessele Date: Fri, 14 Mar 2014 12:32:47 +0000 Subject: [PATCH] independent output kernel gradients x --- GPy/kern/_src/independent_outputs.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/GPy/kern/_src/independent_outputs.py b/GPy/kern/_src/independent_outputs.py index fcf94e74..1848bf6a 100644 --- a/GPy/kern/_src/independent_outputs.py +++ b/GPy/kern/_src/independent_outputs.py @@ -80,19 +80,19 @@ class IndependentOutputs(CombinationKernel): self.kern.gradient = target def gradients_X(self,dL_dK, X, X2=None): - target = np.zeros_like(X) + target = np.zeros(X.shape) slices = index_to_slices(X[:,self.index_dim]) if X2 is None: [[np.copyto(target[s,self.kern.active_dims], self.kern.gradients_X(dL_dK[s,ss],X[s],X[ss])) for s, ss in itertools.product(slices_i, slices_i)] for slices_i in slices] else: - X2,slices2 = X2[:,:self.index_dim],index_to_slices(X2[:,-1]) - [[[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)] + slices2 = index_to_slices(X2[:,self.index_dim]) + [[[np.copyto(target[s,self.kern.active_dims], 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 def gradients_X_diag(self, dL_dKdiag, X): slices = index_to_slices(X[:,self.index_dim]) target = np.zeros(X.shape) - [[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,self.kern.active_dims], self.kern.gradients_X_diag(dL_dKdiag[s],X[s])) for s in slices_i] for slices_i in slices] return target def update_gradients_diag(self, dL_dKdiag, X):