SciKitLearn 中 MLPRegressor 的隐藏层大小是如何确定的?

dar*_*rse 1 python machine-learning neural-network scikit-learn

假设我正在使用以下代码创建一个神经网络:

from sklearn.neural_network import MLPRegressor

model = MLPRegressor(
  hidden_layer_sizes=(100,),
  activation='identity'
)
model.fit(X_train, y_train)
Run Code Online (Sandbox Code Playgroud)

对于hidden_layer_sizes,我只是将其设置为默认值。但是,我真的不明白它是如何工作的。我的定义中隐藏层的数量是多少?是100吗?

des*_*aut 5

文档

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

第 i 个元素表示第 i 个隐藏层中的神经元数量。

length = n_layers - 2,因为隐藏层的数量是n_layers输入层的总层数减 1,输出层的总层数减 1。

在您的(默认)情况下(100,),它意味着一个 100 个单位(神经元)的隐藏层。

对于分别有 100、50 和 25 个单元的 3 个隐藏层,它将是

hidden_layer_sizes = (100, 50, 25)
Run Code Online (Sandbox Code Playgroud)

请参阅文档中示例(它用于MLPClassifier,但逻辑是相同的)。