Keras关于层数的混淆

Tom*_*son 25 python neural-network deep-learning keras tensorflow

我对Keras模型中使用的层数感到困惑.文件在这个问题上相当不透明.

根据Jason Brownlee的说法,第一层技术上由两层组成,即输入层,由input_dim隐藏层指定.请参阅他博客上的第一个问题.

在所有Keras文档中,第一层通常被指定为 model.add(Dense(number_of_neurons, input_dim=number_of_cols_in_input, activtion=some_activation_function)).

因此,我们可以制作的最基本的模型是:

 model = Sequential()
 model.add(Dense(1, input_dim = 100, activation = None))
Run Code Online (Sandbox Code Playgroud)

该模型是否由单个层组成,其中100维输入通过单个输入神经元传递,或者它是否由两个层组成,首先是100维输入层,第二个是1维隐藏层?

此外,如果我要指定这样的模型,它有多少层?

model = Sequential()
model.add(Dense(32, input_dim = 100, activation = 'sigmoid'))
model.add(Dense(1)))
Run Code Online (Sandbox Code Playgroud)

这是一个具有1个输入层,1个隐藏层和1个输出层的模型,还是具有1个输入层和1个输出层的模型?

Nat*_*han 21

您的第一个由连接到单个输出神经元的100个神经元输入层组成

你的第二个由100个神经元输入层,一个隐藏的32个神经元层和一个单个神经元的输出层组成.

您必须将您的第一层视为您的输入层(具有与维度相同数量的神经元,因此100为您)连接到具有您指定的神经元数量的另一层(第一层为1,第二层为32)一)

在Keras,有用的是命令

model.summary()
Run Code Online (Sandbox Code Playgroud)

  • 打败我建议`model.summary`;)它是一个救星,我强烈推荐它到OP. (2认同)
  • 在这里,我们看到一个隐藏层。是否可以添加多个隐藏层? (2认同)

Pus*_*dev 12

对于您的第一个问题,该模型是:

1个输入层和1个输出层.

对于第二个问题:

1个输入层

1个隐藏层

1个激活层(sigmoid)

1个输出层

对于输入层,这是由Keras使用input_dim arg或input_shape抽象的,但您可以在以下位置找到此层:

from keras.layers import Input
Run Code Online (Sandbox Code Playgroud)

激活层也是如此.

from keras.layers import Activation
Run Code Online (Sandbox Code Playgroud)

  • 激活层是指激活功能吗? (2认同)