【问题标题】:How can I get the arrays of the results from the Scipy Optimize function如何从 Scipy Optimize 函数中获取结果数组
【发布时间】:2015-11-03 10:28:04
【问题描述】:

我现在正在为我的算法使用scipy.optimize.minimize 函数。代码类似于:

optim = scipy.optimize.minimize(blablabla)
print optim

然后我在控制台中打印了结果。

status: 0
  success: True
     nfev: 42
 hess_inv: <20x20 LbfgsInvHessProduct with dtype=float64>
      fun: 97330.117758336462
        x: array([ 0.34842437,  0.31432181,  0.3231227 ,  0.82165996,  0.01639795,
    ])
  message: 'CONVERGENCE: NORM_OF_PROJECTED_GRADIENT_<=_PGTOL'

但是,我需要在代码中再次使用结果,我希望得到x 的数组和fun 的值。如何获得它们?

【问题讨论】:

    标签: python optimization scipy


    【解决方案1】:

    您可以通过optim.xoptim.fun 访问它们。

    【讨论】:

    • 它不起作用。我得到了print optim.x AttributeError: 'tuple' object has no attribute 'x'
    • 你确定你没有做错什么吗?它应该返回一个 OptimizeResult,而不是一个元组......你能显示你的确切代码吗?
    • 谢谢。我的代码在stackoverflow.com/questions/33386294/…,最后一行代码修改为optimBFGS = sp.optimize.minimize(func,x0 = x0,args = (X,Y,Z))
    • 然后你只有 print optimBFGS.x 并且它会抛出?
    • 是的。 print optimBFGS.x
    猜你喜欢
    • 1970-01-01
    • 2017-11-09
    • 2013-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-30
    • 1970-01-01
    • 2014-11-03
    相关资源
    最近更新 更多