From 3db095338db5124bf5b5fba261493f7be286fba5 Mon Sep 17 00:00:00 2001 From: Max Zwiessele Date: Mon, 24 Mar 2014 13:32:56 +0000 Subject: [PATCH] objective function seperate from calls for optimizer --- GPy/core/model.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/GPy/core/model.py b/GPy/core/model.py index f6cb101f..47243b79 100644 --- a/GPy/core/model.py +++ b/GPy/core/model.py @@ -176,7 +176,7 @@ class Model(Parameterized): (including the MAP prior), so we return it here. If your model is not probabilistic, just return your gradient here! """ - return self._log_likelihood_gradients() + self._log_prior_gradients() + return -(self._log_likelihood_gradients() + self._log_prior_gradients()) def _grads(self, x): """ @@ -191,13 +191,13 @@ class Model(Parameterized): """ try: self._set_params_transformed(x) - obj_grads = -self._transform_gradients(self.objective_function_gradients()) + obj_grads = self._transform_gradients(self.objective_function_gradients()) self._fail_count = 0 except (LinAlgError, ZeroDivisionError, ValueError): if self._fail_count >= self._allowed_failures: raise self._fail_count += 1 - obj_grads = np.clip(-self._transform_gradients(self.objective_function_gradients()), -1e100, 1e100) + obj_grads = np.clip(self._transform_gradients(self.objective_function_gradients()), -1e100, 1e100) return obj_grads def _objective(self, x): @@ -226,14 +226,14 @@ class Model(Parameterized): def _objective_grads(self, x): try: self._set_params_transformed(x) - obj_f, obj_grads = self.objective_function(), self.objective_function_gradients() + obj_f, obj_grads = self.objective_function(), self._transform_gradients(self.objective_function_gradients()) self._fail_count = 0 except (LinAlgError, ZeroDivisionError, ValueError): if self._fail_count >= self._allowed_failures: raise self._fail_count += 1 obj_f = np.inf - obj_grads = np.clip(-self._transform_gradients(self.objective_function_gradients()), -1e100, 1e100) + obj_grads = np.clip(self._transform_gradients(self.objective_function_gradients()), -1e100, 1e100) return obj_f, obj_grads def optimize(self, optimizer=None, start=None, **kwargs):