inception和vgg16

时间:2019-07-11 10:35:51

标签: image-processing keras deep-learning conv-neural-network vgg-net

我使用了两个经过图像网络训练的模型,即VGG16和使用Keras API在python中使用以下代码行的inception;为简单起见,其中x是输入图像,批量大小是= 1。

VGGbase_model = InceptionV3(weights='imagenet', include_top=False, 
input_shape=(299,299,3))
Inceptionbase_model = VGG16(weights='imagenet', include_top=False, 
input_shape=(224,224,3))
predictVgg16= VGGbase_model.predict_on_batch(x)
predictinception= Inceptionbase_model.predict_on_batch(x)

我已经观察到VGG16模型以(1,512)的输出尺寸进行预测,我理解512是VGG16所预测的功能。但是初始模型输出的尺寸为1,8,8,2048。我知道2048是初始估计的特征向量,但是8,8是什么,以及为什么VGG16在初始时只有二维的原因是3。请发表任何评论。

1 个答案:

答案 0 :(得分:0)

您只需输入以下内容即可查看所有图层的大小:

print(Inceptionbase_model.summary())
print(VGGbase_model.summary())
您可以在这里看到

InceptionV3vgg16

InceptionV3在最后一个卷积层上的形状为(None,8,8,2048)vgg16的形状为(None, 7, 7, 512)。如果您想从每个模型中获取要素,则可以通过使用include_top=Falsepooling='avg'pooling='max'调用模型来实现(这将在末尾添加一个池化层并输出2048个要素InceptionV3模型适用,vgg16模型适用512。

例如。

img_shape=(299,299,3)
Inceptionbase_model = InceptionV3(input_shape=img_shape, weights='imagenet', include_top=False, pooling='avg')