2017-07-26 41 views
8

我对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个输出层?

回答

5

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

1输入层和1个输出层。

对于第二个问题:

1输入层

1隐藏层

1活化层(乙状结肠一个)

1输出层

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

from keras.layers import Input 

相同的激活层。

from keras.layers import Activation 
+0

基于另一个答案,我不完全确定你是对的第一个模型。我认为它只是一个输入层和一个没有任何隐藏层的输出层。尽管如此,我认为你对第二个模型是正确的。 –

+0

嗨,的确,我写得太快了。 它由1个输入层(100个神经元)和一个输出层组成。 (由1个神经元组成) 我要编辑它 –

+0

感谢您澄清 –

10

你的第一种包括连接到一个单一输出神经元

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

您必须将您的第一层视为您的输入图层(具有与dimenson相同数量的神经元,因此您的100个神经元)连接到另一个图层,其中包含您指定的神经元数量(第一个情况为1,在第二个)

在Keras什么是有用的32是命令

model.summary() 
+0

打我提议'model.summary';)这是一个救生员,我会强烈推荐给OP。 –

+0

真棒,感谢您的帮助 –