o
    i e'                     @   sJ   d Z ddlmZ ddlmZ ddlmZ eddG dd deZeZd	S )
z Global average pooling 2D layer.    )backend)GlobalPooling2D)keras_exportz#keras.layers.GlobalAveragePooling2Dzkeras.layers.GlobalAvgPool2Dc                   @   s   e Zd ZdZdd ZdS )GlobalAveragePooling2Da  Global average pooling operation for spatial data.

    Examples:

    >>> input_shape = (2, 4, 5, 3)
    >>> x = tf.random.normal(input_shape)
    >>> y = tf.keras.layers.GlobalAveragePooling2D()(x)
    >>> print(y.shape)
    (2, 3)

    Args:
        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, height, width, channels)` while `channels_first`
          corresponds to inputs with shape
          `(batch, channels, height, width)`.
          When unspecified, uses `image_data_format` value found
          in your Keras config file at `~/.keras/keras.json`
          (if exists) else 'channels_last'. Defaults to 'channels_last'.
        keepdims: A boolean, whether to keep the spatial dimensions or not.
          If `keepdims` is `False` (default), the rank of the tensor is reduced
          for spatial dimensions.
          If `keepdims` is `True`, the spatial dimensions are retained with
          length 1.
          The behavior is the same as for `tf.reduce_mean` or `np.mean`.

    Input shape:
      - If `data_format='channels_last'`:
        4D tensor with shape `(batch_size, rows, cols, channels)`.
      - If `data_format='channels_first'`:
        4D tensor with shape `(batch_size, channels, rows, cols)`.

    Output shape:
      - If `keepdims`=False:
        2D tensor with shape `(batch_size, channels)`.
      - If `keepdims`=True:
        - If `data_format='channels_last'`:
          4D tensor with shape `(batch_size, 1, 1, channels)`
        - If `data_format='channels_first'`:
          4D tensor with shape `(batch_size, channels, 1, 1)`
    c                 C   s6   | j dkrtj|ddg| jdS tj|ddg| jdS )Nchannels_last      )axiskeepdims   )data_formatr   meanr
   )selfinputs r   `/var/www/myenv/lib/python3.10/site-packages/keras/src/layers/pooling/global_average_pooling2d.pycallI   s   
zGlobalAveragePooling2D.callN)__name__
__module____qualname____doc__r   r   r   r   r   r      s    ,r   N)	r   	keras.srcr   .keras.src.layers.pooling.base_global_pooling2dr    tensorflow.python.util.tf_exportr   r   GlobalAvgPool2Dr   r   r   r   <module>   s   6