
    ~Wh                         d Z ddlmZ ddlmZ ddlmZ  ed           G d de                      Z ed          d	             Zd
S )z Layer that subtracts two inputs.    )_Merge)tf_utils)keras_exportzkeras.layers.Subtractc                   B     e Zd ZdZej         fd            Zd Z xZS )Subtracta  Layer that subtracts two inputs.

    It takes as input a list of tensors of size 2, both of the same shape, and
    returns a single tensor, (inputs[0] - inputs[1]), also of the same shape.

    Examples:

    ```python
        import keras

        input1 = keras.layers.Input(shape=(16,))
        x1 = keras.layers.Dense(8, activation='relu')(input1)
        input2 = keras.layers.Input(shape=(32,))
        x2 = keras.layers.Dense(8, activation='relu')(input2)
        # Equivalent to subtracted = keras.layers.subtract([x1, x2])
        subtracted = keras.layers.Subtract()([x1, x2])

        out = keras.layers.Dense(4)(subtracted)
        model = keras.models.Model(inputs=[input1, input2], outputs=out)
    ```
    c                     t                                          |           t          |          dk    rt          d|           d S )N   zOA `Subtract` layer should be called on exactly 2 inputs. Received: input_shape=)superbuildlen
ValueError)selfinput_shape	__class__s     c/var/www/html/movieo_spanner_bot/venv/lib/python3.11/site-packages/keras/layers/merging/subtract.pyr   zSubtract.build1   sX    k"""{q  7)47 7   !     c                 n    t          |          dk    rt          d|           |d         |d         z
  S )Nr	   zJA `Subtract` layer should be called on exactly 2 inputs. Received: inputs=r      )r   r   )r   inputss     r   _merge_functionzSubtract._merge_function:   sL    v;;!-$*- -   ay6!9$$r   )	__name__
__module____qualname____doc__r   shape_type_conversionr   r   __classcell__)r   s   @r   r   r      sa         , #    $#% % % % % % %r   r   zkeras.layers.subtractc                 ,     t          di ||           S )a  Functional interface to the `Subtract` layer.

    Args:
        inputs: A list of input tensors (exactly 2).
        **kwargs: Standard layer keyword arguments.

    Returns:
        A tensor, the difference of the inputs.

    Examples:

    ```python
        import keras

        input1 = keras.layers.Input(shape=(16,))
        x1 = keras.layers.Dense(8, activation='relu')(input1)
        input2 = keras.layers.Input(shape=(32,))
        x2 = keras.layers.Dense(8, activation='relu')(input2)
        subtracted = keras.layers.subtract([x1, x2])

        out = keras.layers.Dense(4)(subtracted)
        model = keras.models.Model(inputs=[input1, input2], outputs=out)
    ```
     )r   )r   kwargss     r   subtractr    C   s"    4 8ff%%%r   N)	r   keras.layers.merging.base_merger   keras.utilsr    tensorflow.python.util.tf_exportr   r   r    r   r   r   <module>r$      s    ' & 3 2 2 2 2 2             : 9 9 9 9 9 %&&&% &% &% &% &%v &% &% '&&%R %&&& & '&& & &r   