尝试迁移学习时,图像网的密集层和卷积层之间的输入维度不匹配



我正在尝试在 InceptionV3 的卷积层之上训练密集层。但是我无法初始化完全连接的模型。我收到一个值错误。

model_inc = applications.InceptionV3(weights='imagenet', 
                                     include_top=False)
model = Sequential()
model.add(Flatten(input_shape=model_inc.output_shape[1:]))
model.add(Dense(256, activation= 'relu', kernel_initializer='he_normal'))
model.add(Dropout(0.5))
model.add(Dense(9, activation='softmax'))

我希望模型能够成功编译,但我得到"ValueError:"Flatten"输入的形状未完全定义(得到(无,无,2048(。确保将完整的"input_shape"或"batch_input_shape"参数传递给模型中的第一层。

您希望输入转到model_inc,因此必须在那里定义input_shape。像下面这样的东西应该有效

model_inc = applications.InceptionV3(input_shape=(224,224,3), weights='imagenet', 
                                     include_top=False)
model = Sequential()
# you need to add your base model
model.add(model_inc)
model.add(Flatten())
model.add(Dense(256, activation= 'relu', kernel_initializer='he_normal'))
model.add(Dropout(0.5))
model.add(Dense(9, activation='softmax'))

最新更新