【问题标题】:Python scikit learn MLPClassifier "hidden_layer_sizes"Python scikit 学习 MLPClassifier “hidden_​​layer_sizes”
【发布时间】:2016-05-23 15:46:51
【问题描述】:

我迷失在 scikit learn 0.18 用户手册中(http://scikit-learn.org/dev/modules/generated/sklearn.neural_network.MLPClassifier.html#sklearn.neural_network.MLPClassifier):

   hidden_layer_sizes : tuple, length = n_layers - 2, default (100,)
   The ith element represents the number of neurons in the ith hidden layer.

如果我在我的模型中只寻找 1 个隐藏层和 7 个隐藏单元,我应该这样放置吗?谢谢!

    hidden_layer_sizes=(7, 1)

【问题讨论】:

  • 一个确定的好方法是检查coefs_属性

标签: python python-2.7 scikit-learn neural-network


【解决方案1】:

hidden_layer_sizes=(7,) 如果你只想要 7 个隐藏单元的 1 个隐藏层。

length = n_layers - 2 是因为你有 1 个输入层和 1 个输出层。

【讨论】:

  • 谢谢!这是令人困惑的部分。如果我正在寻找具有 10 个隐藏单元的 3 个隐藏层怎么办? hidden_​​layer_sizes=(10,1)?
  • (10,10,10) 如果你想要 3 个隐藏层,每个隐藏层有 10 个隐藏单元。
  • 所以我的理解是默认是 1 个隐藏层,每个隐藏层 100 个隐藏单元?谢谢!
  • @Farseer,如果你想测试这个NN架构:56:25:11:7:5:3:1., 56是输入层,输出层是1,hidden_​​layer_sizes= (25,11,7,5,3)?
【解决方案2】:

docs

hidden_​​layer_sizes : 元组,长度 = n_layers - 2,默认 (100,)

表示: hidden_​​layer_sizes 是一个大小为 (n_layers -2) 的元组

n_layers 表示根据架构我们想要的层数。

从 n_layers 中减去值 2,因为两个层(输入和输出)不属于隐藏层,因此不属于计数。

default(100,) 表示如果没有为 hidden_​​layer_sizes 提供值,则默认架构将具有一个输入层、一个具有 100 个单元的隐藏层和一个输出层。

再次来自文档:

第i个元素代表第i个隐藏层的神经元个数。

表示元组中的每个条目都属于相应的隐藏层。

例子:

  1. 对于架构 56:25:11:7:5:3:1,输入为 56,输出为 1 隐藏层将是 (25:11:7:5:3)。所以元组hidden_layer_sizes = (25,11,7,5,3,)

  2. 对于具有输入 3 和输出 2 的 3:45:2:11:2 架构 隐藏层将是 (45:2:11)。所以元组hidden_layer_sizes = (45,2,11,)

【讨论】:

  • 那么机器学习如何知道sklearn设置中输入输出层的大小呢?
  • 当您 fit()(训练)分类器时,它会将输入神经元的数量固定为每个数据样本中的特征数量。并且没有输出是“y”或目标变量中的类数。
猜你喜欢
  • 2020-11-28
  • 2015-12-22
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
  • 2018-10-21
  • 2016-12-20
  • 2020-01-07
  • 2017-04-26
相关资源
最近更新 更多