我对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个输出层的模型?
答案 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