
    0h5                     t    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y
)z Layer that subtracts two inputs.    )_Merge)tf_utils)keras_exportzkeras.layers.Subtractc                   F     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 tf_keras.src as 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k7  rt        d|       y )N   zOA `Subtract` layer should be called on exactly 2 inputs. Received: input_shape=)superbuildlen
ValueError)selfinput_shape	__class__s     ^/var/www/html/engine/venv/lib/python3.12/site-packages/tf_keras/src/layers/merging/subtract.pyr   zSubtract.build1   s=    k"{q ))47  !    c                 P    t        |      dk7  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:   s?    v;!$$*8-  ay6!9$$r   )	__name__
__module____qualname____doc__r   shape_type_conversionr   r   __classcell__)r   s   @r   r   r      s'    , ## $%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 tf_keras.src as 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   &tf_keras.src.layers.merging.base_merger   tf_keras.src.utilsr    tensorflow.python.util.tf_exportr   r   r    r   r   r   <module>r$      sS    ' : ' : %&&%v &% '&%R %&& '&r   