我正在使用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
的内部副本。