allowed passing of factr to bfgs algorithm

This commit is contained in:
James Hensman 2013-09-24 11:49:47 +01:00
parent c800e0687f
commit f209477885

View file

@ -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)