我正在使用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)

关于python - 阵列的全局平均池,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49080405/

10-10 19:36