4

我想使用 VGG 预训练模型提取 368x368 大小的图像的特征。根据文档,VGGnet 接受 224x224 大小的图像。有没有办法给 Keras VGG 提供可变大小的输入?

这是我的代码:

# VGG Feature Extraction
x_train = np.random.randint(0, 255, (100, 224, 224, 3))
base_model = VGG19(weights='imagenet')
modelVGG = Model(inputs=base_model.input, outputs=base_model.get_layer('block4_conv2').output)
block4_conv2_features = modelVGG.predict(x_train)

编辑后的代码(有效!)

# VGG Feature Extraction
x_train = np.random.randint(0, 255, (100, 368, 368, 3))
base_model = VGG19(weights='imagenet', include_top=False)
modelVGG = Model(inputs=base_model.input, outputs=base_model.get_layer('block4_conv2').output)
block4_conv2_features = modelVGG.predict(x_train)
4

1 回答 1

5

输入大小会影响全连接 ( Dense) 层中的神经元数量。因此,您需要创建自己的全连接层。

调用 VGG19include_top=False以删除全连接层,然后自己添加它们。检查此代码以供参考。

于 2017-05-24T15:00:15.450 回答