From 7f30fef69896aaccca2bdbfee269e82cb4c6fda7 Mon Sep 17 00:00:00 2001 From: Zhenwen Dai Date: Fri, 13 Mar 2015 09:47:36 +0000 Subject: [PATCH] add trigger update to set_{X,Y,Z} --- GPy/core/gp.py | 16 ++++++++-------- GPy/core/sparse_gp.py | 8 ++++---- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/GPy/core/gp.py b/GPy/core/gp.py index 3252ac08..38a7bb3d 100644 --- a/GPy/core/gp.py +++ b/GPy/core/gp.py @@ -89,7 +89,7 @@ class GP(Model): self.link_parameter(self.kern) self.link_parameter(self.likelihood) - def set_XY(self, X=None, Y=None): + def set_XY(self, X=None, Y=None, trigger_update=True): """ Set the input / output data of the model This is useful if we wish to change our existing data but maintain the same model @@ -99,7 +99,7 @@ class GP(Model): :param Y: output observations :type Y: np.ndarray """ - self.update_model(False) + if trigger_update: self.update_model(False) if Y is not None: if self.normalizer is not None: self.normalizer.scale_by(Y) @@ -123,26 +123,26 @@ class GP(Model): self.link_parameters(self.X) else: self.X = ObsAr(X) - self.update_model(True) - self._trigger_params_changed() + if trigger_update: self.update_model(True) + if trigger_update: self._trigger_params_changed() - def set_X(self,X): + def set_X(self,X, trigger_update=True): """ Set the input data of the model :param X: input observations :type X: np.ndarray """ - self.set_XY(X=X) + self.set_XY(X=X, trigger_update=trigger_update) - def set_Y(self,Y): + def set_Y(self,Y, trigger_update=True): """ Set the output data of the model :param X: output observations :type X: np.ndarray """ - self.set_XY(Y=Y) + self.set_XY(Y=Y, trigger_update=trigger_update) def parameters_changed(self): """ diff --git a/GPy/core/sparse_gp.py b/GPy/core/sparse_gp.py index 376224cb..bac54d8c 100644 --- a/GPy/core/sparse_gp.py +++ b/GPy/core/sparse_gp.py @@ -63,14 +63,14 @@ class SparseGP(GP): def has_uncertain_inputs(self): return isinstance(self.X, VariationalPosterior) - def set_Z(self, Z): - self.update_model(False) + def set_Z(self, Z, trigger_update=True): + if trigger_update: self.update_model(False) self.unlink_parameter(self.Z) from ..core import Param self.Z = Param('inducing inputs',Z) self.link_parameter(self.Z, index=0) - self.update_model(True) - self._trigger_params_changed() + if trigger_update: self.update_model(True) + if trigger_update: self._trigger_params_changed() def parameters_changed(self): self.posterior, self._log_marginal_likelihood, self.grad_dict = self.inference_method.inference(self.kern, self.X, self.Z, self.likelihood, self.Y, self.Y_metadata)