开发者

解读MaxPooling1D和GlobalMaxPooling1D的区别

开发者 https://www.devze.com 2022-12-18 09:29 出处:网络 作者: zhangztSky
目录MaxPooling1D和GlobalMaxPooling1D区别输出如下图tf.keras.layers.GlobalMaxPool1D()总结MaxPooling1D和GlobalMaxPooling1D区别
目录
  • MaxPooling1D和GlobalMaxPooling1D区别
    • 输出如下图
  • tf.keras.layers.GlobalMaxPool1D()
    • 总结

      MaxPooling1D和GlobalMaxPooling1D区别

      import tensorflow as tf
      
      from tensorflow impopythonrt keras
      input_shape = (2, 3, 4)
      x = tf.random.normal(input_shape)
      print(x)
      
      y=keras.layers.GlobalMaxPool1D()(x)
      print("*"*20)
      
      print(y)
      '''
        """Global average pooling operation for temporal data.
      
        Examples:
      
        >>> input_shape = (2, 3, 4)
        >>> x = tf.random.normal(input_shape)
        >>> y = tf.keras.layers.GlobalAveragePooling1D()(x)
        >>> print(y.shape)
        (2, 4)
      
        Arguments:
          data_format: A string,
            one of `channels_last` (default) or `channels_first`.
            The ordering of the dimensions in the inputs.
            `channels_last` corresponds to inputs with shape
            `(BATch, steps, features)` while `channels_first`
            corresp开发者_Go开发onds to inputs with shape
            `(batch, features, steps)`.
      
        Call arguments:
          inputs: A 3D tensor.
          mask: Binary tensor of shape `(batch_size, steps)` indicating whether
            a given step should be masked (excluded from the average).
      
        Input shape:
          - If `data_format='channels_last'`:
            3D tensor with shape:
            `(batch_size, steps, features)`
          - If `data_format='channels_first'`:
            3D tensor with shape:
            `(batch_size, features, steps)`
      
        Output shape:
          2D tensor with shape `(batch_size, features)`.
        """
      '''
      
      print("--"*20)
      
      input_shape = (2, 3, 4)
      x = tf.random.normal(input_shape)
      print(x)
      
      y=www.devze.comkeras.layers.MaxPool1D(pool_size=2,strides=1)(x)  # strides 不指定 默认等于 pool_size
      print("*"*20)
      
      print(y)
      

      输出如下图

      上图GlobalMaxPool1D 相当于给每一个样本每列的最大值

      解读MaxPooling1D和GlobalMaxPooling1D的区别

      而MaxPool1D就是普通的对每一个样本进行一个窗口(1D是一维列窗口)滑动取最大值。

      tf.keras.layers.GlobalMaxPool1D()

      与tf.keras.layers.Conv1D的输入一样,输入一个三维数据(batch_size,feature_size,output_dimension)

      x = tf.编程客栈constant([[1., 2., 3.], [4., 5., 6.]])
      ​php​​​​​​x = tf.reandroidshape(x, [2, 3, 1])
      max_pool_1d=tf.keras.layers.GlobalMaxPooling1D()
      max_pool_1d(x)

      其中max_pool_1d(x)和tf.math.reduce_max(x,axis=-2,keepdims=False)作用相同

      总结

      以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

      0

      精彩评论

      暂无评论...
      验证码 换一张
      取 消

      关注公众号