From 53dcd3f9fa272aeef2d6d556c19d0ae9aa4b1784 Mon Sep 17 00:00:00 2001 From: Max Zwiessele Date: Tue, 13 Jan 2015 13:53:28 +0000 Subject: [PATCH] [objective grads] undid the change, as this would lead to dramatic problems in reloading old models using the pickle module --- GPy/core/model.py | 6 +++--- GPy/core/verbose_optimization.py | 18 +++++++++--------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/GPy/core/model.py b/GPy/core/model.py index 107ecf85..05a514e8 100644 --- a/GPy/core/model.py +++ b/GPy/core/model.py @@ -257,7 +257,7 @@ class Model(Parameterized): opt = optimizer(start, model=self, max_iters=max_iters, **kwargs) with VerboseOptimization(self, opt, maxiters=max_iters, verbose=messages, ipython_notebook=ipython_notebook): - opt.run(f_fp=self._objective_and_grads, f=self._objective, fp=self._objective_grads) + opt.run(f_fp=self._objective_grads, f=self._objective, fp=self._grads) self.optimization_runs.append(opt) @@ -314,7 +314,7 @@ class Model(Parameterized): # evaulate around the point x f1 = self._objective(x + dx) f2 = self._objective(x - dx) - gradient = self._objective_grads(x) + gradient = self._grads(x) dx = dx[transformed_index] gradient = gradient[transformed_index] @@ -360,7 +360,7 @@ class Model(Parameterized): print "No free parameters to check" return - gradient = self._objective_grads(x).copy() + gradient = self._grads(x).copy() np.where(gradient == 0, 1e-312, gradient) ret = True for nind, xind in itertools.izip(param_index, transformed_index): diff --git a/GPy/core/verbose_optimization.py b/GPy/core/verbose_optimization.py index eab62d60..b718a0cd 100644 --- a/GPy/core/verbose_optimization.py +++ b/GPy/core/verbose_optimization.py @@ -12,8 +12,9 @@ def exponents(fnow, current_grad): class VerboseOptimization(object): def __init__(self, model, opt, maxiters, verbose=True, current_iteration=0, ipython_notebook=False): - self.verbose = verbose - if self.verbose or ipython_notebook: + self.verbose = verbose or ipython_notebook + self.ipython_notebook = ipython_notebook + if self.verbose: self.model = model self.iteration = current_iteration self.ipython_notebook = ipython_notebook @@ -130,12 +131,11 @@ class VerboseOptimization(object): def __exit__(self, type, value, traceback): if self.verbose or self.ipython_notebook: + self.stop = time.time() self.model.remove_observer(self) - self.stop = time.time() + self.print_out() - self.print_out() - - if not self.ipython_notebook: - print - print 'Optimization finished in {0:.5g} Seconds'.format(self.stop-self.start) - print + if not self.ipython_notebook: + print + print 'Optimization finished in {0:.5g} Seconds'.format(self.stop-self.start) + print