在Keras中创建顺序模型时,我了解您在第一层中提供了输入形状。然后,此输入形状会构成隐式输入层吗?
例如,下面的模型明确指定了2个密集层,但这实际上是一个3层模型,即由输入形状隐含的一个输入层,一个具有32个神经元的隐藏密集层,然后一个具有10个可能输出的输出层组成的模型吗?
model = Sequential([
Dense(32, input_shape=(784,)),
Activation('relu'),
Dense(10),
Activation('softmax'),
])
好吧,实际上它实际上是一个隐式输入层,即您的模型是一个具有三层“输入,隐藏和输出”的“老式”神经网络的示例。这在Keras Functional API(请参阅文档中的示例)中更明确地可见,其中您的模型将编写为:
inputs = Input(shape=(784,)) # input layer
x = Dense(32, activation='relu')(inputs) # hidden layer
outputs = Dense(10, activation='softmax')(x) # output layer
model = Model(inputs, outputs)
实际上,此隐式输入层是您input_shape
只需要在顺序API的模型的第一(显式)层中包含参数的原因-在后续层中,输入形状是根据先前的输出推断出来的(请参见的源代码中的注释core.py
。
您也可以找到有关启发性的文档tf.contrib.keras.layers.Input
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句