Small change in usage of gradients in multioutput kernel

This commit is contained in:
Siivola Eero 2018-09-06 12:13:32 +03:00
parent c30698b8db
commit 37fc39afc2
4 changed files with 5 additions and 5 deletions

View file

@ -48,7 +48,7 @@ class DiffKern(CombinationKernel):
self.base_kern.reset_gradients()
def get_gradient(self):
return self.base_kern.gradient.copy()
return self.base_kern.gradient
def append_gradient(self, gradient):
self.base_kern.gradient += gradient

View file

@ -202,7 +202,7 @@ class Kern(Parameterized):
raise NotImplementedError
def get_gradient(self):
return self.gradient.copy()
return self.gradient
def append_gradient(self,gradient):
self.gradient += gradient

View file

@ -23,7 +23,7 @@ class KernWrapper(Kern):
return self.fg(dL_dK, X, X2=X2)
def get_gradient(self):
return self.base_kern.gradient.copy()
return self.base_kern.gradient
def append_gradient(self, gradient):
self.base_kern.gradient += gradient

View file

@ -97,12 +97,12 @@ class MultioutputKern(CombinationKernel):
return target
def _update_gradients_full_wrapper(self, cov_struct, dL_dK, X, X2):
gradient = cov_struct['kern'].get_gradient()
gradient = cov_struct['kern'].get_gradient().copy()
cov_struct['update_gradients_full'](dL_dK, X, X2)
cov_struct['kern'].append_gradient(gradient)
def _update_gradients_diag_wrapper(self, kern, dL_dKdiag, X):
gradient = kern.get_gradient()
gradient = kern.get_gradient().copy()
kern.update_gradients_diag(dL_dKdiag, X)
kern.append_gradient(gradient)