神经网络网格搜索值错误

Neural network grid search value error

我正在尝试 运行 神经网络的网格搜索,但我不断收到一些奇怪的错误。我的算法看起来像:

parameters={'learning_rate':["constant", "invscaling", "adaptive"], 
                 'hidden_layer_sizes': (156,), 'alpha': [10.0 ** -np.arange(1, 7)], 
                 'activation': ["logistic", "relu", "Tanh"]}
grid= GridSearchCV(MLPClassifier(),parameters, n_jobs=-1, cv=10)
grid.fit(train_x, train_y)

我收到的错误信息是:

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

关于 activationlearning_rate 我也尝试只使用 1 个值,但问题似乎仍然存在。请问我有什么做的不好吗?

我在你的代码中发现了 2 个错误。


首先: alpha 参数应该包含在一个纯列表中。使用List Comprehension,答案如下

其次:'activation': ["logistic", "relu", "Tanh"]}中,Tanh应替换为tanh


以下代码应该可以正常工作:

替换:

'alpha': [10.0 ** -np.arange(1, 7)]
'activation': ["logistic", "relu", "Tanh"]

搭配:

'alpha': [10.0 ** -i for i in range(1,7)]
'activation': ["logistic", "relu", "tanh"]

把所有东西放在一起:

parameters={'learning_rate':["constant", "invscaling", "adaptive"], 
             'hidden_layer_sizes': (156,), 'alpha': [10.0 ** -i for i in range(1,7)], 
             'activation': ["logistic", "relu", "tanh"]}

grid= GridSearchCV(MLPClassifier(), parameters, n_jobs=-1, cv=10)

grid.fit(train_x, train_y)