简体   繁体   中英

Scipy optimize.fmin wrong return values

I am currently using scipy.optimize.fmin() function and I am experiencing a problem with it. When I look at the documentation it says:

Returns:

    xopt : ndarray
        Parameter that minimizes function.

    fopt : float
        Value of function at minimum: fopt = func(xopt).

    iter : int
        Number of iterations performed.

    funcalls : int
        Number of function calls made.

    warnflag : int
        1 : Maximum number of function evaluations made. 2 : Maximum number of iterations reached.

    allvecs : list
        Solution at each iteration.

But when I try this:

res, min = opt.fmin(optim, self._params, (param_optim, self._paramsIni, Qmes, critere_efficacite, self, codeBV, interval), maxiter=5)

I get this error:

ValueError: too many values to unpack (expected 2)

Anyone has an idea why? I mean is the documention wrong (I guess not) or am I doing something wrong? I am using scipy 0.19 and Python34

Thanks in advance.

To be slightly more exact: The function returns either a tuple of 6 values (

full_output : bool, optional Set to True if fopt and warnflag outputs are desired.

) or one (if it is left at False which is the default). If you want to have only the second value of the full output, I recommend you set full_output=True and pattern-match as suggested in the comments. Alternativly you can store the result in one tuple res = opt.fmin(<your arguments>) and then access r=res[0] min=res[1] .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM