我正在尝试使用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值上。
有人可以帮助我解决这个问题吗?