我正在使用Keras的InceptionV3模型来提取特征。让我们说我有1000张图片,我得到了最后一层形状(1000, 8, 8, 2048)
。哪个来自数据大小的1000
和来自最后卷积层的(8, 8, 2048)
。如何实施全球平均合并?我期待形状是(1000, 1, 1, 2048)
。
使用GlobalAveragePooling2D
进行平均池化或使用GlobalMaxPooling2D
进行最大池化:
model = Sequential()
model.add(InputLayer(input_shape=(8, 8, 2048)))
model.add(GlobalAveragePooling2D())
model.summary()
它将全局特征映射到一个值,因此输出形状为(batch_size, 2048)
:
Layer (type) Output Shape Param #
=================================================================
input_1 (InputLayer) (None, 8, 8, 2048) 0
_________________________________________________________________
global_average_pooling2d_1 ( (None, 2048) 0
=================================================================
如果你想输出特定的4级张量,只需应用K.expand_dims
将其扩展为(batch_size, 1, 1, 2048)
。