Keras对层数的混淆

时间:2017-07-26 13:46:45

标签: python tensorflow neural-network deep-learning keras

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

根据Jason Brownlee的说法,第一层技术上由两层组成,输入层由input_dim指定,隐藏层。请参阅his blog上的第一个问题。

在所有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))

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

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

model = Sequential()
model.add(Dense(32, input_dim = 100, activation = 'sigmoid'))
model.add(Dense(1)))

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

2 个答案:

答案 0 :(得分:19)

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

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

您必须将第一层视为输入层(与尺寸具有相同数量的神经元,因此100为您)连接到具有您指定的神经元数量的另一层(在第一种情况下为1,32在第二个)

在Keras,有用的是命令

model.summary()

答案 1 :(得分:11)

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

1个输入层和1个输出层。

关于第二个问题:

1个输入图层

1个隐藏层

1个激活层(sigmoid)

1个输出层

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

from keras.layers import Input

激活层相同。

from keras.layers import Activation