最大池化层通常用于对数据进行降采样,去除冗余信息、对特征进行压缩。
tf.keras.layers.MaxPool1D(pool_size=2,
strides=None,
padding='valid',
data_format='channels_last',
**kwargs
)
参数pool_size表示池化窗口的大小,参数strides表示移动步长,默认为None,表示和pool_size的大小一样。
注意,padding参数的含义和卷积层的padding参数的含义有点不一样,当padding为VALID,也就是无填充时,输出张量的大小为(输入张量的大小-pool_size + 1 )/ strides,当padding为SAME时,输出张量的大小为输入张量的大小 / strides。
tf.keras.layers.MaxPool2D(pool_size=(2, 2),
strides=None,
padding='valid',
data_format=None,
**kwargs
)
二维最大池化的过程如上图所示。其中输入矩阵大小为4×4,pool_size为2×2,strides为2,padding方式为无填充,得到的输出矩阵大小为2×2。可以看出,池化后的矩阵相对于输入矩阵,仅仅保留了特征值较高的一部分。也就是说,池化操作降低了图像的采样率。
这里的参数pool_size是一个元组(2, 2),表示池化窗口的大小为2×2。
tf.keras.layers.MaxPool3D(pool_size=(2, 2, 2),
strides=None,
padding='valid',
data_format=None,
**kwargs
)
三维池化层使用场景一般是多帧(单/多通道)的frame数据(视频帧),且输出也是多帧,依次对连续k帧的整个通道同时执行池化操作;
函数各参数的含义与MaxPool2D、MaxPool1D各参数的含义类似。