我正在使用 SciPy 的“最小化”函数来最小化函数。该函数返回最优值以及估计的雅可比矩阵和海森矩阵。如下:
fun: -675.09792378630596
hess_inv: <8x8 LbfgsInvHessProduct with dtype=float64>
jac: array([ 6.34713615e-02, 1.15960574e-03, 1.63709046e-03, 2.16914486e-02, -8.02970135e-02, -4.39513315e-02,
6.69160727e-02, -5.68434189e-05])
message: b'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'
nfev: 684
nit: 60
status: 0
success: True
x: array([ 9.93756778e-01, 3.51823214e+00, -2.06368373e-01, 7.37395700e-04, 2.11222756e-02, 3.29367564e-02, 1.22886906e-01, -2.75434386e-01])
我想要估计的 Hessian,但是当我让它返回 hess_inv 时,我得到的只是
<8x8 LbfgsInvHessProduct with dtype=float64>
而不是矩阵本身。我如何让它返回矩阵?
来自LbfgsInvHessProduct 的 SciPy 文档 http://docs.scipy.org/doc/scipy-0.16.0/reference/generated/scipy.optimize.LbfgsInvHessProduct.html;你可以使用这个方法托登塞()以密集数组形式获取 LbfgsInvHessProduct 的值。
但是,请记住 LbfgsInvHessProduct 仍然是一个矩阵!这是一种特殊的内存优化格式,但您仍然可以调用其他矩阵函数,例如 matmat()、transpose()、dot() 等。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)