当top = False时,ResNet50 keras给出了错误的输出形状。

问题描述 投票:0回答:1

对于转移学习,我使用ResNet50作为特征提取器。通过使top = False,我从最后一层之前的那层中获取输出。输出的大小应该是 (#examples, 7, 7, 2048) 作为ResNet50的文档。但我遇到了一个奇怪的问题。我得到的输出形状是 (#examples, 8, 8, 2048). 以下是代码。

model = ResNet50(weights="imagenet", include_top=False)
# batchImages is a list containing images in that batch
# bs is the batch size
features = model.predict(batchImages, batch_size = bs) 

这里的特征形状应该是 (#examples, 7, 7, 2048) 但它是给 (#examples, 8, 8, 2048). 为什么会出现这种情况?

python deep-learning size resnet transfer-learning
1个回答
0
投票

我发现ResNet50的输出特征大小(top = False)取决于图像的输入形状。虽然在文档中,我发现在这种情况下,输出特征形状将是 (#examples, 7, 7, 2048) 但当我改变输入图像的形状时,它就会改变。虽然我没有在任何地方找到任何关于这个问题的说明。但我看到,每当我使用尺寸为 (224 x 224) 工作完全正常。但是当我把输入图片的大小增加到 (255 x 255) 输出特征向量大小变为 (#examples, 8, 8, 2048). 这看起来很奇怪,但实际上这是发生。

© www.soinside.com 2019 - 2024. All rights reserved.