o
    #Õj¿	  ã                   @   sÈ   d dl mZmZmZ ddlmZ g ZG dd„ deƒZG dd„ deƒZG dd	„ d	eƒZ	G d
d„ deƒZ
G dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZdS )é   )ÚlinalgÚmanipulationÚmathé   )ÚLayerc                       s   e Zd Z‡ fdd„Z‡  ZS )ÚFloatFunctionalLayerc                    ó   t ƒ  ¡  d S ©N©ÚsuperÚ__init__©Úself©Ú	__class__© úb/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/paddle/nn/quant/functional_layers.pyr      ó   zFloatFunctionalLayer.__init__)Ú__name__Ú
__module__Ú__qualname__r   Ú__classcell__r   r   r   r   r      s    r   c                       ó&   e Zd Z‡ fdd„Zddd„Z‡  ZS )Úaddc                    r   r	   r
   r   r   r   r   r      r   zadd.__init__Nc                 C   ó   t  |||¡S r	   )r   r   ©r   ÚxÚyÚnamer   r   r   Úforward   r   zadd.forwardr	   ©r   r   r   r   r   r   r   r   r   r   r      ó    r   c                       r   )Úsubtractc                    r   r	   r
   r   r   r   r   r   #   r   zsubtract.__init__Nc                 C   r   r	   )r   r"   r   r   r   r   r   &   r   zsubtract.forwardr	   r    r   r   r   r   r"   "   r!   r"   c                       r   )Úmultiplyc                    r   r	   r
   r   r   r   r   r   +   r   zmultiply.__init__Nc                 C   r   r	   )r   r#   r   r   r   r   r   .   r   zmultiply.forwardr	   r    r   r   r   r   r#   *   r!   r#   c                       r   )Údividec                    r   r	   r
   r   r   r   r   r   3   r   zdivide.__init__Nc                 C   r   r	   )r   r$   r   r   r   r   r   6   r   zdivide.forwardr	   r    r   r   r   r   r$   2   r!   r$   c                       r   )Úreshapec                    r   r	   r
   r   r   r   r   r   ;   r   zreshape.__init__Nc                 C   r   r	   )r   r%   )r   r   Úshaper   r   r   r   r   >   r   zreshape.forwardr	   r    r   r   r   r   r%   :   r!   r%   c                       r   )Ú	transposec                    r   r	   r
   r   r   r   r   r   C   r   ztranspose.__init__Nc                 C   r   r	   )r   r'   )r   r   Úpermr   r   r   r   r   F   r   ztranspose.forwardr	   r    r   r   r   r   r'   B   r!   r'   c                       ó&   e Zd Z‡ fdd„Zddd„Z‡  ZS )Úconcatc                    r   r	   r
   r   r   r   r   r   K   r   zconcat.__init__é    Nc                 C   r   r	   )r   r*   )r   r   Zaxisr   r   r   r   r   N   r   zconcat.forward)r+   Nr    r   r   r   r   r*   J   r!   r*   c                       s&   e Zd Z‡ fdd„Zddd„Z‡  ZS )	Úflattenc                    r   r	   r
   r   r   r   r   r   S   r   zflatten.__init__r+   éÿÿÿÿNc                 C   s   t  ||||¡S r	   )r   r,   )r   r   Z
start_axisZ	stop_axisr   r   r   r   r   V   s   zflatten.forward)r+   r-   Nr    r   r   r   r   r,   R   r!   r,   c                       r)   )Úmatmulc                    r   r	   r
   r   r   r   r   r   [   r   zmatmul.__init__FNc                 C   s   t  |||||¡S r	   )r   r.   )r   r   r   Ztranspose_xZtranspose_yr   r   r   r   r   ^   s   zmatmul.forward)FFNr    r   r   r   r   r.   Z   r!   r.   N)Ztensorr   r   r   Zlayer.layersr   Ú__all__r   r   r"   r#   r$   r%   r'   r*   r,   r.   r   r   r   r   Ú<module>   s   