小编典典

Keras顺序模型输入层

python

在Keras中创建顺序模型时,我知道您在第一层中提供了输入形状。然后,此输入形状会构成 隐式 输入层吗?

例如,下面的模型明确指定了2个密集层,但这实际上是一个3层模型,即由输入形状隐含的一个输入层,一个具有32个神经元的隐藏密集层,然后一个具有10个可能输出的输出层组成的模型吗?

model = Sequential([
    Dense(32, input_shape=(784,)),
    Activation('relu'),
    Dense(10),
    Activation('softmax'),
])

阅读 173

收藏
2020-12-20

共1个答案

小编典典

好吧,实际上它实际上 一个隐式输入层,即您的模型是一个具有三层“输入,隐藏和输出”的“老式”神经网络的示例。这在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

2020-12-20