首页 > 解决方案 > 我试图将 VGG16 层添加到我的模型中,但它给出了一个值错误

问题描述

错误是这样的

层 conv2d_32 的输入 0 与层不兼容::预期 min_ndim=4,发现 ndim=2。收到的完整形状:[无,512]

我尝试了很多东西,但它不起作用

这是我的模型

inp = Input(shape=(48,48,3))
vgg_layer = [VGG16(include_top=False, weights = "imagenet" ,pooling="max",input_shape = (48,48,3))]

m_layer = [(Conv2D(32, (3, 3), activation='relu', padding = 'same')),
(BatchNormalization()),
(MaxPooling2D(pool_size=(3,3), strides=(2, 2))),
(Dropout(0.25)),
(Conv2D(64, (3, 3), activation='relu', padding = 'same')),
(BatchNormalization()),
(MaxPooling2D(pool_size=(3,3), strides=(2, 2))),
(Dropout(0.25)),
(Conv2D(128, (3, 3), activation='relu', padding = 'same')),
(BatchNormalization()),
(MaxPooling2D(pool_size=(3,3), strides=(2, 2))),
(Dropout(0.25)),
(Conv2D(256, (3, 3), activation='relu', padding = 'same')),
(BatchNormalization()),
(MaxPooling2D(pool_size=(3,3), strides=(2, 2))),
(Dropout(0.5)),
(Flatten()),
(Dense(256, activation='relu')),
(BatchNormalization()),
(Dropout(0.25)),
(Dense(7, activation='softmax'))]


model = Sequential(vgg_layer  + m_layer)

标签: pythonkerasdeep-learning

解决方案


推荐阅读