sklearn.neural_network.MLPClassifier 中属性 n_layers_ 的含义

Lee*_*ack 2 python neural-network scikit-learn

我已经使用训练了一个模型sklearn.neural_network.MLPClassifier,我想知道我的分类器中有多少层。结果显示:

>>from sklearn.neural_network import MLPClassifier
>>clf = MLPClassifier()  
>>clf = clf.fit(train_matrix,train_label)
>>clf.n_layers_
>>3
Run Code Online (Sandbox Code Playgroud)

该文档显示属性 n_layers_ 意味着:

层数

这意味着有一个隐藏层还是有三个隐藏层?

Viv*_*mar 7

n_layers_表示神经网络中的所有层,包括

  1. 输入层=1
  2. 所有隐藏层 = len(hidden_layer_sizes)
  3. 输出层=1

所以如果你将分类器初始化为

clf = MLPClassifier()
Run Code Online (Sandbox Code Playgroud)

默认hidden_layer_sizes参数 = (100,),因此隐藏层数 = 1。

因此,正如您所得到的,总层数= 1+1+1 = 3。

如果您将其初始化为:

clf = MLPClassifier(hidden_layer_sizes=(100,100,))
Run Code Online (Sandbox Code Playgroud)

现在隐藏层数 = 2,因此总层数 = 4