
    &Vfy	                     j    d dl mZ d dl mZ d dlmZ d dlmZ d dlmZ d dl	m
Z
  G d de          Zd	S )
    )backend)ops)	InputSpec)Layer)compute_pooling_output_shape)argument_validationc                   B     e Zd ZdZ	 	 	 	 d	 fd	Zd Zd Z fdZ xZS )
BasePoolingzBase pooling layer.maxvalidNc                 8    t                      j        dd|i| t          j        ||d          | _        ||n|}t          j        ||dd          | _        || _        || _        t          j	        |          | _
        t          |dz             | _        d S )	Nname	pool_sizestridesT)
allow_zero   )ndim )super__init__r   standardize_tupler   r   	pool_modepaddingr   standardize_data_formatdata_formatr   
input_spec)
selfr   r   pool_dimensionsr   r   r   r   kwargs	__class__s
            b/var/www/html/software/conda/lib/python3.11/site-packages/keras/src/layers/pooling/base_pooling.pyr   zBasePooling.__init__   s     	--d-f---,>
 
  '))G*<_iD
 
 
 #":;GG#1)<===    c                    | j         dk    r-t          j        || j        | j        | j        | j                  S | j         dk    r-t          j        || j        | j        | j        | j                  S t          d| j          d          )Nr   )r   r   r   r   averagez9`pool_mode` must be either 'max' or 'average'. Received: .)	r   r   max_poolr   r   r   r   average_pool
ValueError)r   inputss     r!   callzBasePooling.call&   s    >U""<. ,    ^y((#. ,    %>% % %  r"   c                 P    t          || j        | j        | j        | j                  S )N)r   r   r   r   r   )r   input_shapes     r!   compute_output_shapez BasePooling.compute_output_shape=   s,    +NLL
 
 	
r"   c                     t                                                      }|                    | j        | j        | j        | j        d           |S )N)r   r   r   r   )r   
get_configupdater   r   r   r   )r   configr    s     r!   r/   zBasePooling.get_configF   sT    ##%%!^<<#/	 	
 	
 	
 r"   )r   r   NN)	__name__
__module____qualname____doc__r   r*   r-   r/   __classcell__)r    s   @r!   r
   r
   	   s         > > > > > >4  .
 
 

 
 
 
 
 
 
 
 
r"   r
   N)	keras.srcr   r   keras.src.layers.input_specr   keras.src.layers.layerr   keras.src.ops.operation_utilsr   keras.src.utilsr   r
   r   r"   r!   <module>r<      s                1 1 1 1 1 1 ( ( ( ( ( ( F F F F F F / / / / / /G G G G G% G G G G Gr"   