[Scipy-tickets] [SciPy] #923: Adding new options to the optimize.fmin_l_bfgs_b procedure .
SciPy Trac
scipy-tickets@scipy....
Mon Sep 17 17:54:12 CDT 2012
#923: Adding new options to the optimize.fmin_l_bfgs_b procedure .
-------------------------------------+--------------------------------------
Reporter: gilles.rochefort | Owner: somebody
Type: enhancement | Status: needs_review
Priority: normal | Milestone: 0.12.0
Component: scipy.optimize | Version: devel
Keywords: optimize, fmin_l_bfgs_b |
-------------------------------------+--------------------------------------
Comment(by gilles.rochefort):
Considering the new stopping rule, I definitely disagree.
The number of evaluations (gradient and function) is not the same as the
number of iterations (i.e. the number of times the current minimizer is
updated).
This L-BFGS-B algorithm is based on callback mechanisms. Internal fortran
code asks for some actions to the python code. Such actions are actually :
* compute the function and gradient ('FG')at given current estimate;
* a 'NEW_X' action that just say a new estimate has been computed.
Because this L-BFGS-B algorithm is based on a linesearch heuristic (the
way to evaluate the step length at each iteration), the number of
evaluations may be greater than the number of iterations (the number of
time we update the initial estimate).
I made a [pull request|https://github.com/scipy/scipy/pull/318] . When I
tried for the standalone example in file lbfgsb.py the number of
evaluations is 23 and the number of iteration is 21.
While the number of function/gradient evaluations is relevant for
computation time, the number of iterations is also needed to give an idea
about the rate of convergence.
By the way, I agree that the fortran output should be kept, but an option
to disable it may be provided.
--
Ticket URL: <http://projects.scipy.org/scipy/ticket/923#comment:3>
SciPy <http://www.scipy.org>
SciPy is open-source software for mathematics, science, and engineering.
More information about the Scipy-tickets
mailing list