Keras 2 API 文档 / 层 API / 池化层 / GlobalMaxPooling1D 层

GlobalMaxPooling1D 层

[源代码]

GlobalMaxPooling1D

tf_keras.layers.GlobalMaxPooling1D(
    data_format="channels_last", keepdims=False, **kwargs
)

对一维时序数据进行全局最大池化操作。

通过在时间维度上取最大值来对输入表示进行下采样。

例如

>>> x = tf.constant([[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]])
>>> x = tf.reshape(x, [3, 3, 1])
>>> x
<tf.Tensor: shape=(3, 3, 1), dtype=float32, numpy=
array([[[1.], [2.], [3.]],
       [[4.], [5.], [6.]],
       [[7.], [8.], [9.]]], dtype=float32)>
>>> max_pool_1d = tf.keras.layers.GlobalMaxPooling1D()
>>> max_pool_1d(x)
<tf.Tensor: shape=(3, 1), dtype=float32, numpy=
array([[3.],
       [6.],
       [9.], dtype=float32)>

参数

  • data_format:字符串,可选值包括 channels_last (默认) 或 channels_first。输入张量维度的顺序。channels_last 对应形状为 (batch, steps, features) 的输入,而 channels_first 对应形状为 (batch, features, steps) 的输入。
  • keepdims:布尔值,是否保留时间维度。如果 keepdimsFalse (默认),则张量在空间维度上的秩会减小。如果 keepdimsTrue,则保留时间维度,长度为 1。此行为与 tf.reduce_maxnp.max 相同。

输入形状

  • 如果 data_format='channels_last':3D 张量,形状为:(batch_size, steps, features)
  • 如果 data_format='channels_first':3D 张量,形状为:(batch_size, features, steps)

输出形状

  • 如果 keepdims=False:2D 张量,形状为 (batch_size, features)
  • 如果 keepdims=True
    • 如果 data_format='channels_last':3D 张量,形状为 (batch_size, 1, features)
    • 如果 data_format='channels_first':3D 张量,形状为 (batch_size, features, 1)