我正在使用一个函数scipy.optimize.fmin_bfgs
,它有几个输出变量。我关心其中两个,xopt和fopt。我如何存储这些变量?以下内容对我不起作用:
xopt, fopt = fmin_bfgs(f, 0, fprime = fprime)
然而,这给了我fopt
:
fopt = fmin_bfgs(f, 0, fprime = fprime)
我也需要xopt
,但它说我“还需要1个值来解压缩。”
答案 0 :(得分:1)
您需要将full_output
设置为true,之后还会包含fopt
,func_calls
,grad_calls
和warnflag
;你可以切片返回的序列:
xopt, fopt = fmin_bfgs(f, 0, fprime = fprime, full_output=True)[:2]
请参阅scipy.optimize.fmin_bfgs
documentation:
full_output
: bool,可选
如果为True,除了xopt之外还返回fopt,func_calls,grad_calls和warnflag。
当然,这个函数的文档使这很明显,我首先要看linked source code。根据它的外观,bopt
和gopt
也会在设置full_output
时包含在内,但文档无法正确解释这一点。