
    ёiE                     >    S SK Jr  SSKJr  SSKJr   " S S\5      rg)	    )
functional   )Layer   )ConvertibleQuantedLayerc                   L   ^  \ rS rSrSrS\4U 4S jjrS rS rS r	S r
S	rU =r$ )
QuantedLinear   z
The computational logic of QuantizedLinear is the same as Linear.
The only difference is that its inputs are all fake quantized.
layerc                 Z  > [         TU ]  5         UR                  U l        UR                  U l        UR                  U l        S U l        S U l        UR                  b   UR                  R                  U5      U l        UR                  b!  UR                  R                  U5      U l        g g N)	super__init__weightbiasnameweight_quanteractivation_quanter	_instance
activation)selfr   q_config	__class__s      Z/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/paddle/nn/quant/qat/linear.pyr   QuantedLinear.__init__   s    llJJ	JJ	 #"&??&"*//";";E"BD*&.&9&9&C&CE&JD# +    c                     UnU R                   nU R                  b  U R                  U5      nU R                  b  U R                  U R                   5      nU R                  X#5      $ r   )r   r   r   _linear_forward)r   inputquant_inputquant_weights       r   forwardQuantedLinear.forward+   s]    {{"".11%8K*..t{{;L##K>>r   c                 Z    [         R                  " XU R                  U R                  S9nU$ )N)xr   r   r   )Flinearr   r   )r   r   r   outs       r   r   QuantedLinear._linear_forward4   s!    hhDIIDIIN
r   c                     S/$ )N)r   r    r   s    r   weights_to_quanters!QuantedLinear.weights_to_quanters8   s    ,--r   c                     S/$ )Nr   r+   r,   s    r   activation_quanters!QuantedLinear.activation_quanters;   s    $%%r   )r   r   r   r   r   )__name__
__module____qualname____firstlineno____doc__r   r   r"   r   r-   r0   __static_attributes____classcell__)r   s   @r   r	   r	      s/    
Ke K?.& &r   r	   N)	paddle.nnr   r&   layer.layersr   formatr   r	   r+   r   r   <module>r<      s     & ! ,&&+ &&r   