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

时间:2017-05-24 14:54:26

标签: python keras deep-learning pre-trained-model vgg-net

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

1 个答案:

答案 0 :(得分:4)

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

使用include_top=False调用VGG19以删除完全连接的图层,然后自行添加。请查看this code以供参考。