3 回答
TA贡献1825条经验 获得超6个赞
我运行模型,错误是: ValueError: Input 0 is incompatible with layer block4_conv1: expected axis -1 of input shape to have value 256 but got shape (None, 250, 250, 32)
删除输入形状keras.layers.Conv2D 并将其添加到 basemodel:
basemodel = VGG19(include_top = False,input_shape=(256,256,3),weights='None')
或者如果你想使用 Imagenet:
basemodel = VGG19(include_top = False,input_shape=(256,256,3),weights='imagenet')
拟合模型并让我知道发生的任何错误。
TA贡献1796条经验 获得超7个赞
你只从 VGG 模型中提取了一层并以错误的方式连接它们。这是一种正确的方法:
basemodel = VGG19(include_top = False)
model = tf.keras.Sequential(basemodel.layers[:10])
model.add(keras.layers.Conv2D(32, (7, 7), activation = 'relu'))
model.summary()
请注意,第一层VGG是 anInputLayer所以你应该使用basemodel.layers[:11].
请注意,要微调您的模型,最好修复 VGG 层的权重:
for layer in model.layers[:10]:
layer.trainable = False
TA贡献1934条经验 获得超2个赞
问题是您没有添加前 10 层,而是从顶部添加了第 10 层。此外,该层的输入应该具有 256 的倍数的通道。只需将代码替换为:
model.add(keras.layers.Conv2D(256,(7,7),input_shape = (256,256,3),activation = 'relu'))
添加回答
举报
