o
    i e
                     @   sN   d Z ddlm  mZ ddlmZ ddlmZ ddl	m
Z
 G dd deZdS )z0Private base class for global pooling 3D layers.    N)Layer)	InputSpec)
conv_utilsc                       sN   e Zd ZdZd fdd	Zdd Zdd	 Zd
d Zdd Z fddZ	  Z
S )GlobalPooling3Dz6Abstract class for different global pooling 3D layers.NFc                    s4   t  jdi | t|| _tdd| _|| _d S )N   )ndim )super__init__r   normalize_data_formatdata_formatr   
input_speckeepdims)selfr   r   kwargs	__class__r   ]/var/www/myenv/lib/python3.10/site-packages/keras/src/layers/pooling/base_global_pooling3d.pyr
      s   
zGlobalPooling3D.__init__c                 C   s0   |D ]}|| dkrt d| d| dqd S )Nr   zIncorrect input shape z$ with dimension 0 at reduction axis .)
ValueError)r   input_shapeaxesaxisr   r   r   _validate_reduction_axis"   s   z(GlobalPooling3D._validate_reduction_axisc                 C   s@   t | }| jdkr| |g d d S | |g d d S )Nchannels_last)         )r   r      )tfTensorShapeas_listr   r   r   r   r   r   r   build*   s   
zGlobalPooling3D.buildc                 C   s   t | }| jdkr(| jrt |d ddd|d gS t |d |d gS | jr9t |d |d dddgS t |d |d gS )Nr   r   r   r   )r   r    r!   r   r   r"   r   r   r   compute_output_shape1   s   
z$GlobalPooling3D.compute_output_shapec                 C   s   t )N)NotImplementedError)r   inputsr   r   r   call>   s   zGlobalPooling3D.callc                    s4   | j | jd}t  }tt| t|  S )N)r   r   )r   r   r	   
get_configdictlistitems)r   configbase_configr   r   r   r(   A   s   
zGlobalPooling3D.get_config)NF)__name__
__module____qualname____doc__r
   r   r#   r$   r'   r(   __classcell__r   r   r   r   r      s    r   )r1   tensorflow.compat.v2compatv2r   keras.src.engine.base_layerr   keras.src.engine.input_specr   keras.src.utilsr   r   r   r   r   r   <module>   s   