【发布时间】:2014-12-29 21:31:20
【问题描述】:
所以我尝试使用scipy.optimize.root,但内存不足,原因是没有足够的内存来计算雅可比。
我想知道考虑到我的内存限制,我可以使用什么替代方案?或者有没有办法以某种方式规避它?
我的输入大小约为 400,000,输出相似,这意味着 jacobian 是 400,000^2,这是一个杀手...
如果您有任何建议可以使问题更清晰,请告诉我。
更新
我想我已经找到了一种有效计算任何给定点的雅可比的方法。 scipy.optimize.root 的文档说明如下:
如果 jac 是布尔值并且 为 True,则 fun 假定返回雅可比矩阵的值以及目标函数。如果为 False,Jacobian 将以数值方式估计。 jac 也可以是一个可调用的返回有趣的雅可比行列式。在这种情况下,它必须接受与 fun 相同的参数。
我从突出显示的点猜测,如果 fun(x) 是我的函数,它给出的内容类似于:
f, jac = fun(x)
其中 f = f(x) 和 jac = jacobian(x)。
对吗?
【问题讨论】:
-
您使用的是哪种 method 以及您的 jac 参数设置为什么?
-
两者都使用默认值,即不传递任何东西