繁体   English   中英

VGG Keras中的尺寸不匹配

[英]Dimension Mismatch in VGG Keras

我想用Keras创建VGG模型。 但是,显示以下错误:

预期lstm_input_2具有4个维度,但数组的形状为(60000,10)

我创建了以下顺序模型:

model = Sequential()
model.add(Conv2D(16, kernel_size=(3, 3),
                     padding='same',
                     input_shape=input_shape)) 
model.add(Activation('relu'))
model.add(Conv2D(16, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2))) 
model.add(Conv2D(32, (3, 3), padding='same', activation='relu'))
model.add(Conv2D(32, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(64, (3, 3), padding='same', activation='relu'))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dense(50, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(num_classes))
model.add(Dropout(0.5))
model.add(Activation('softmax'))

请告诉我为什么会产生此错误。

您只需要添加一个Flatten层,如下所示:

…
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Flatten()) # <-- this layer is missing in your code

model.add(Dense(50, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(num_classes))
model.add(Dropout(0.5))
model.add(Activation('softmax'))
…

这会将您的最后一个2d层(MaxPooling2D)转换为一维形状,然后可以将其输入到Dense层中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM