我正在尝试使用 scipy 全局优化来解决优化问题。我正在使用差异进化。
代码
def objective(x,*args):
x = np.append(x,args)
res = MLmodel.predict(x)
return res
fun_history = []
x_values = []
def callback(x,convergence):
fobj = objective(x)
x_values.append(x)
fun_history.append(fobj)
bounds = [(5.5,8.8),(29,40)]
load = (50,)
res = optimize.differential_evolution(objective,bounds,args=load,disp=True,callback = callback)
我的目标函数将这三个参数作为输入并给出输出。我只想优化前两个参数。所以我作为参数传递的第三个参数。
当我运行优化器时,我在第一次运行后得到一个错误,它说
ValueError: operands could not be broadcast together with shapes (1,2) (3,) (1,2)
我猜这个参数没有被附加到第二次运行的 x 值。
有人可以帮我解决这个问题吗?