使scipy.optimize.minimize就地修改变量

时间:2019-01-07 21:43:32

标签: python scipy mathematical-optimization

我正在使用scipy.optimize进行以下操作:

  • 最小化目标函数objective_func
  • 大量变量x(5-15 GB)
  • 通过trust-constr方法。

如何使scipy.optimize.minimize直接修改x而不进行任何复制?

目前看来并没有这样做。

谢谢。

测试:

为了简化起见,省略了平等约束。

import scipy.optimize as so
import numpy as np
def objective_func(x):
    return np.sum(x**2)
x = np.arange(3)
result = so.minimize(objective_func, x, 
                     method='trust-constr')
print("result:", result.x)
print("delta:", x - result.x)

结果:

result: [-1.89895546e-11 -1.89895756e-11 -1.89895364e-11]
delta: [1.89895546e-11 1.00000000e+00 2.00000000e+00]

由于增量并非全为零,因此so.minimize不会就地修改x

它可能会创建x的内部副本。

0 个答案:

没有答案