0

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

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

4

0 回答 0