diff --git a/GPy/inference/optimization.py b/GPy/inference/optimization.py index 589ec4c7..e65b862e 100644 --- a/GPy/inference/optimization.py +++ b/GPy/inference/optimization.py @@ -29,7 +29,7 @@ class Optimizer(): """ def __init__(self, x_init, messages=False, model=None, max_f_eval=1e4, max_iters=1e3, - ftol=None, gtol=None, xtol=None): + ftol=None, gtol=None, xtol=None, bfgs_factor=None): self.opt_name = None self.x_init = x_init self.messages = messages @@ -39,6 +39,7 @@ class Optimizer(): self.status = None self.max_f_eval = int(max_f_eval) self.max_iters = int(max_iters) + self.bfgs_factor = bfgs_factor self.trace = None self.time = "Not available" self.xtol = xtol @@ -128,6 +129,8 @@ class opt_lbfgsb(Optimizer): print "WARNING: l-bfgs-b doesn't have an ftol arg, so I'm going to ignore it" if self.gtol is not None: opt_dict['pgtol'] = self.gtol + if self.bfgs_factor is not None: + opt_dict['factr'] = self.bfgs_factor opt_result = optimize.fmin_l_bfgs_b(f_fp, self.x_init, iprint=iprint, maxfun=self.max_iters, **opt_dict)