在scipy.optimize中全局优化中添加参数

时间:2019-06-29 10:45:07

标签: python machine-learning optimization scipy scipy-optimize

我正在尝试使用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值上。

有人可以帮助我解决这个问题吗?

0 个答案:

没有答案