From f4629c89cd37726bbbd92012ce747b0ed9905c91 Mon Sep 17 00:00:00 2001 From: Siivola Eero Date: Wed, 5 Sep 2018 14:11:29 +0300 Subject: [PATCH] Minor change to updating of gradients in multioutput kernel --- GPy/kern/src/kern.py | 6 ++++++ GPy/kern/src/multioutput_kern.py | 8 ++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/GPy/kern/src/kern.py b/GPy/kern/src/kern.py index 8da3fbfb..bf0062af 100644 --- a/GPy/kern/src/kern.py +++ b/GPy/kern/src/kern.py @@ -200,6 +200,12 @@ class Kern(Parameterized): def reset_gradients(self): raise NotImplementedError + + def get_gradient(self): + return self.gradient.copy() + + def append_gradient(self,gradient): + self.gradient += gradient def update_gradients_expectations(self, dL_dpsi0, dL_dpsi1, dL_dpsi2, Z, variational_posterior): """ diff --git a/GPy/kern/src/multioutput_kern.py b/GPy/kern/src/multioutput_kern.py index 2c26d544..bc2a3a8c 100644 --- a/GPy/kern/src/multioutput_kern.py +++ b/GPy/kern/src/multioutput_kern.py @@ -94,14 +94,14 @@ class MultioutputKern(CombinationKernel): return target def _update_gradients_full_wrapper(self, cov_struct, dL_dK, X, X2): - gradient = cov_struct['kern'].gradient.copy() + gradient = cov_struct['kern'].get_gradient() cov_struct['update_gradients_full'](dL_dK, X, X2) - cov_struct['kern'].gradient += gradient + cov_struct['kern'].append_gradient(gradient) def _update_gradients_diag_wrapper(self, kern, dL_dKdiag, X): - gradient = kern.gradient.copy() + gradient = kern.get_gradient() kern.update_gradients_diag(dL_dKdiag, X) - kern.gradient += gradient + kern.append_gradient(gradient) def reset_gradients(self): for kern in self.kern: kern.reset_gradients()