def parameters_changed(self):
self.posterior, self._log_marginal_likelihood, self.grad_dict = self.inference_method.inference(self.kern, self.X, self.likelihood, self.Y_normalized, self.mean_function, self.Y_metadata)<EOL>self.likelihood.update_gradients(self.grad_dict['<STR_LIT>'])<EOL>self.kern.update_gradients_full(self.grad_dict['<STR_LIT>'], self.X)<EOL>if self.mean_function is not None:<EOL><INDENT>self.mean_function.update_gradients(self.grad_dict['<STR_LIT>'], self.X)<EOL><DEDENT>
Method that is called upon any changes to :class:`~GPy.core.parameterization.param.Param` variables within the model.
In particular in the GP class this method re-performs inference, recalculating the posterior and log marginal likelihood and gradients of the model

.. warning::
    This method is not designed to be called manually, the framework is set up to automatically call this method upon changes to parameters, if you call
    this method yourself, there may be unexpected consequences.