
    ~Wh                         d Z ddlmc mZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ  ed           G d d	e                      ZdS )
z"Keras cropping layer for 1D input.    N)Layer)	InputSpec)
conv_utils)keras_exportzkeras.layers.Cropping1Dc                   :     e Zd ZdZd fd	Zd Zd Z fdZ xZS )
Cropping1Dax  Cropping layer for 1D input (e.g. temporal sequence).

    It crops along the time dimension (axis 1).

    Examples:

    >>> input_shape = (2, 3, 2)
    >>> x = np.arange(np.prod(input_shape)).reshape(input_shape)
    >>> print(x)
    [[[ 0  1]
      [ 2  3]
      [ 4  5]]
     [[ 6  7]
      [ 8  9]
      [10 11]]]
    >>> y = tf.keras.layers.Cropping1D(cropping=1)(x)
    >>> print(y)
    tf.Tensor(
      [[[2 3]]
       [[8 9]]], shape=(2, 1, 2), dtype=int64)

    Args:
      cropping: Int or tuple of int (length 2)
        How many units should be trimmed off at the beginning and end of
        the cropping dimension (axis 1).
        If a single int is provided, the same value will be used for both.

    Input shape:
      3D tensor with shape `(batch_size, axis_to_crop, features)`

    Output shape:
      3D tensor with shape `(batch_size, cropped_axis, features)`
       r
   c                      t                      j        di | t          j        |ddd          | _        t          d          | _        d S )N   croppingT)
allow_zero   )ndim )super__init__r   normalize_tupler   r   
input_spec)selfr   kwargs	__class__s      g/var/www/html/movieo_spanner_bot/venv/lib/python3.11/site-packages/keras/layers/reshaping/cropping1d.pyr   zCropping1D.__init__@   sZ    ""6""""2a
 
 
 $+++    c                     t          j        |                                          }|d         %|d         | j        d         z
  | j        d         z
  }nd }t          j        |d         ||d         g          S )Nr
   r   r   )tfTensorShapeas_listr   )r   input_shapelengths      r   compute_output_shapezCropping1D.compute_output_shapeG   sn    n[1199;;q>% ^dmA&66q9IIFFF~{1~v{1~FGGGr   c                 J   |j         d         Bt          | j                  |j         d         k    rt          d|j          d| j                   | j        d         dk    r|d d | j        d         d d d f         S |d d | j        d         | j        d          d d f         S )Nr
   zbcropping parameter of Cropping layer must be greater than the input shape. Received: inputs.shape=z, and cropping=r   )shapesumr   
ValueError)r   inputss     r   callzCropping1D.callO   s    LO'DM""fl1o55@<@ @04@ @  
 =q  !!!T]1-//233!!!T]1-q1A0AA111DEEr   c                     d| j         i}t                                                      }t          t	          |                                          t	          |                                          z             S )Nr   )r   r   
get_configdictlistitems)r   configbase_configr   s      r   r)   zCropping1D.get_config^   s[    dm,gg((**D**,,--V\\^^0D0DDEEEr   )r	   )	__name__
__module____qualname____doc__r   r!   r'   r)   __classcell__)r   s   @r   r   r      s           D, , , , , ,H H HF F FF F F F F F F F Fr   r   )r2   tensorflow.compat.v2compatv2r   keras.engine.base_layerr   keras.engine.input_specr   keras.utilsr    tensorflow.python.util.tf_exportr   r   r   r   r   <module>r;      s    ) ( " ! ! ! ! ! ! ! ! ) ) ) ) ) ) - - - - - - " " " " " " : 9 9 9 9 9 '((DF DF DF DF DF DF DF )(DF DF DFr   