根据Scikit learn提供的文档
hidden_layer_sizes : tuple, length = n_layers - 2, default (100,)
我毫不怀疑。
在我的代码中,我配置的是
MLPClassifier(algorithm='l-bfgs', alpha=1e-5, hidden_layer_sizes=(5, 2), random_state=1)
那么5
和2
表明了什么呢?
我的理解是,5是隐藏层的数量,但是2是多少?
参考 - http://scikit-learn.org/dev/modules/generated/sklearn.neural_network.MLPClassifier.html#
从您提供的链接中,在参数表中,hidden_layer_sizes
行:
第 i 个元素表示第 i 个隐藏的神经元数 层
这意味着您将拥有len(hidden_layer_sizes)
隐藏层,并且每个隐藏层i
都将具有hidden_layer_sizes[i]
神经元。
在您的情况下,(5, 2)
意味着:
- 1rst 隐藏层有 5 个神经元
- 第 2 个隐藏层有 2 个神经元
所以隐藏层的数量是隐式设置
我在网上找到的一些细节,关于sklearn中输入层、隐藏层和输出层的架构和单位。
- 输入单位数将是要素数
- 对于多类分类,输出单元数将是标签数 尝试单个隐藏层,
- 或者如果有多个隐藏层,则每个隐藏层应具有相同数量的单元
- 隐藏层中的单元越多越好,尝试与输入要素数量相同的两倍甚至三四倍