
    ij&
                     L    d Z ddlmZ ddlmZ  ed       G d de             Zy)z"Adaptive Average Pooling 2D layer.    )keras_export)BaseAdaptiveAveragePoolingz%keras.layers.AdaptiveAveragePooling2Dc                   $     e Zd ZdZd fd	Z xZS )AdaptiveAveragePooling2Da  Adaptive average pooling operation for 2D spatial data.

    This layer applies an adaptive average pooling operation, which pools the
    input such that the output has a target spatial size specified by
    `output_size`, regardless of the input spatial size. The kernel size
    and stride are automatically computed to achieve the target output size.

    Args:
        output_size: Integer or tuple of 2 integers specifying the
            target output size.
            If an integer, the same value is used for both height and width.
        data_format: string, either `"channels_last"` or `"channels_first"`.
            `"channels_last"` corresponds to inputs with shape
            `(batch, height, width, channels)`.
            `"channels_first"` corresponds to inputs with shape
            `(batch, channels, height, width)`.
            Defaults to the value found in your Keras config file at
            `~/.keras/keras.json`. If never set, `"channels_last"` is used.

    Input shape:
        - If `data_format="channels_last"`: 4D tensor
            `(batch_size, height, width, channels)`
        - If `data_format="channels_first"`: 4D tensor
            `(batch_size, channels, height, width)`

    Output shape:
        - If `data_format="channels_last"`:
            `(batch_size, output_height, output_width, channels)`
        - If `data_format="channels_first"`:
            `(batch_size, channels, output_height, output_width)`

    Examples:
        >>> import numpy as np
        >>> input_img = np.random.rand(1, 64, 64, 3)
        >>> layer = AdaptiveAveragePooling2D(output_size=32)
        >>> output_img = layer(input_img)
        >>> output_img.shape
        (1, 32, 32, 3)
    c                     t        |t              r||f}nJt        |t        t        f      rt	        |      dk(  rt        |      }nt        d| dt        |             t        |    ||fi | y )N   zE`output_size` must be an integer or (height, width) tuple. Received: z	 of type )	
isinstanceinttuplelistlen	TypeErrortypesuper__init__)selfoutput_sizedata_formatkwargsoutput_size_tuple	__class__s        /var/www/html/emotional.easysim.app/public_html/venv/lib/python3.12/site-packages/keras/src/layers/pooling/adaptive_average_pooling2d.pyr   z!AdaptiveAveragePooling2D.__init__3   s}    k3'!,k :eT]3K8HA8M %k 2(M43D2EG 
 	*KB6B    )N)__name__
__module____qualname____doc__r   __classcell__)r   s   @r   r   r   	   s    &PC Cr   r   N)r   keras.src.api_exportr   .keras.src.layers.pooling.base_adaptive_poolingr   r    r   r   <module>r"      s5    ( -
 564C9 4C 74Cr   