我正在用keras学习卷积神经网络。在实现convolution2d时,我们没有第二次提及输入形状。为什么会这样呢?在此先感谢:)
例如:
model = Sequential()
model.add(Convolution2D(32, 3, 3, activation='relu', input_shape=(1,28,28)))
model.add(Convolution2D(32, 3, 3, activation='relu'))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Dropout(0.25))
答案 0 :(得分:2)
输入形状仅在您的第一层上定义。通过此链接Guide to Sequential modelling
模型需要知道它应该期望的输入形状。因此,顺序模型中的第一层(并且只有第一层,因为随后的层可以进行自动形状推断)需要接收有关其输入形状的信息。有几种方法可以做到这一点:
答案 1 :(得分:0)
仅在第一层需要输入形状,因为这会将有关输入的信息添加到模型中,而Keras无法推断出此信息,因为数据是由您提供的。
随后的图层可以由Keras推断其输出形状,因为它们通常表示固定的变换,因此仅需要第一层的输入形状。