2015-09-05 115 views
0

我正在使用一個函數,scipy.optimize.fmin_bfgs,它有幾個輸出變量。我關心他們中的兩個,xopt和fopt。我如何存儲這些變量?下面是不是爲我工作:從Python函數獲取輸出變量

xopt, fopt = fmin_bfgs(f, 0, fprime = fprime) 

然而,這給了我fopt

fopt = fmin_bfgs(f, 0, fprime = fprime) 

我需要xopt過,但它說,我「需要1個更多的價值來解壓。」

回答

1

您需要設置full_output爲true,之後foptfunc_callsgrad_callswarnflag包含太多;你可以切片返回的序列:

xopt, fopt = fmin_bfgs(f, 0, fprime = fprime, full_output=True)[:2] 

scipy.optimize.fmin_bfgs documentation

full_output布爾,可選
如果爲True,除了xopt返回FOPT,func_calls,grad_calls和warnflag。

當然,這個功能的文檔使得這一點遠不明顯,我首先必須看看linked source code。從外觀上看,boptgopt也包含在full_output設置中,但文檔無法正確解釋這一點。