2023-06-01 16:41:19,168 - pyswarms.single.global_best - INFO - Optimize for 100 iters with {'c1': 0.5, 'c2': 0.3, 'w': 0.9} pyswarms.single.global_best: 0%| |0/100 Traceback (most recent call last): File "D:\untitled\优化算法.py", line 54, in <module> cost, pos = optimizer.optimize(objective_function, iters=100, X_train=X_train, y_train=y_train) File "C:\Users\Administrator\AppData\Roaming\Python\Python39\site-packages\pyswarms\single\global_best.py", line 209, in optimize self.swarm.current_cost = compute_objective_function(self.swarm, objective_func, pool=pool, **kwargs) File "C:\Users\Administrator\AppData\Roaming\Python\Python39\site-packages\pyswarms\backend\operators.py", line 239, in compute_objective_function return objective_func(swarm.position, **kwargs) File "D:\untitled\优化算法.py", line 44, in objective_function y_hat = neural_network(params, X_train) File "D:\untitled\优化算法.py", line 29, in neural_network W1 = params[1:n_inputs * n_hidden + 1].reshape((n_inputs, n_hidden))
时间: 2023-10-08 07:08:52 浏览: 131
GA-optimize--NN.zip_GA for regression_GA-BP_ga nn _nn ga_回归 nn
这个错误是因为您的参数数量不正确,导致在 `neural_network` 函数中的 `reshape` 操作出现问题。这可能是由于 `dimensions` 参数的值不正确,导致参数数量不匹配。
您需要检查以下几个部分:
1. 尝试使用不同的 `dimensions` 参数值进行优化,确保它匹配您的神经网络模型的参数数量。
2. 确保 `params` 参数的形状正确,它应该是一个一维数组。
3. 检查您的 BP 神经网络模型的参数数量是否正确,并与 `neural_network` 函数中的 `reshape` 操作匹配。
4. 检查您的数据集是否正确,特征数量是否与神经网络模型中的输入层神经元数量匹配。
希望这些提示能够帮助您解决问题!
阅读全文