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