您的错误是由于您将
bounds
变量。截至文件编制之时
边界
变量必须是具有2个值的元组,即
bounds=(lower_limit,upper_limit)
其中您的下限和上限是numpy.ndarray或范围列表。所以这个版本的代码运行良好。
dimensions = 3 # Number of hyperparameters to optimize
options = {'c1': 0.5, 'c2': 0.3, 'w': 0.9}
bounds = ([16,3,1],[64,7,3]) # Bounds for each hyperparameter
## The above line is which has been given in wrong format which causes error
optimizer=ps.single.GlobalBestPSO(n_particles=100, dimensions=dimensions, options=options,bounds=bounds)
best_hyperparameters,_ = optimizer.optimize(fitness_function, iters=20)
正如您所看到的,边界变量的形状应该是
(2,)
但根据你的意见
(3,)
。因此,您获得了
Error is this: "ValueError: too many values to unpack (expected 2) at this line 6: optimizer = GlobalBestPSO(n_particles=100, dimensions=dimensions, options=options, bounds=bounds)
,正如它所期望的那样,解压缩2个变量,但您给出了3个。
P.S.-你可能是社区的新手,但要努力通过
this
,因为它可以帮助我们很容易地获得bug/查询,而且它很容易表示。快乐编码!!