【问题标题】:Neural network grid search value error神经网络网格搜索值错误
【发布时间】:2018-10-22 11:11:59
【问题描述】:

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

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()

我也尝试对activationlearning_rate 仅使用1 个值,但问题似乎仍然存在。请问有什么我做得不好的地方吗?

【问题讨论】:

  • 即使在我尝试更新所有涉及的软件包后,问题仍然存在。我猜这意味着包裹不是问题

标签: scikit-learn neural-network grid-search


【解决方案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)

【讨论】:

  • 纠正您指出的内容使其起作用。感谢您的帮助。
猜你喜欢
  • 2018-02-17
  • 2017-11-20
  • 2021-03-11
  • 2021-05-02
  • 2017-08-28
  • 2015-10-17
  • 1970-01-01
  • 1970-01-01
  • 2021-10-23
相关资源
最近更新 更多