Keras VGGnet 预训练模型可变大小输入

Keras VGGnet Pretrained Model Variable Sized Input

我想使用 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)

输入大小影响全连接 (Dense) 层中的神经元数量。所以你需要创建自己的全连接层。

include_top=False调用VGG19移除全连接层,然后自己添加。检查 this code 以供参考。