[SciPy-User] fmin_bfgs stuck in infinite loop

Pauli Virtanen pav at iki.fi
Tue Oct 25 07:40:23 EDT 2011


25.10.2011 13:30, josef.pktd at gmail.com kirjoitti:
[clip]
> Is there an explanation for task? What does task[:2] == 'FG' mean?

Check the minpack source files for dcscrch.f

> I tried the condition separately.
> 
>         if np.isnan(phi1) or np.isneginf(phi1):
>             break
>         if task[:2] == asbytes('FG'):
> 
> I also added the isneginf check, because I think there is also the
> possibility of an infinite loop at phi = -inf.
> 
> I would still feel safer if there is a maxiter in the line search, as
> in the python version, scalar_search_wolfe2

Transforming the while loop to a for-loop could be a reasonable
alternative solution,

	for j in xrange(maxiter):
	    ...
	else:
	    ... return indicating wolfe search failed ...

> a separate issue:
> bfgs does not have an xtol, which means we don't get any indication if
> only one or some of the parameters go to inf.

The best thing would be to have all the optimizers deal with termination
conditions in the same way.

	Pauli

-- 
Pauli Virtanen




More information about the SciPy-User mailing list