我正在尝试对神经网络进行网格搜索,但我不断收到一些奇怪的错误。我的算法看起来像:
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:具有多个元素的数组的真值 暧昧。使用a.any()或a.all()
我试图仅对activation
和learning_rate
使用1个值,但问题似乎仍然存在。有什么我做得不好的,拜托?
答案 0 :(得分: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)