我使用了两个经过图像网络训练的模型,即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。请发表任何评论。
答案 0 :(得分:0)
您只需输入以下内容即可查看所有图层的大小:
print(Inceptionbase_model.summary())
print(VGGbase_model.summary())
您可以在这里看到
InceptionV3
在最后一个卷积层上的形状为(None,8,8,2048)
,vgg16
的形状为(None, 7, 7, 512)
。如果您想从每个模型中获取要素,则可以通过使用include_top=False
和pooling='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')