
    ёi                        S SK Jr  S SKrS SKJrJr  S SKJr  \(       a  S SKJ	r	  S SK
Jr  S SKJr   " S S\\R                  S	9rg)
    )annotationsN)TYPE_CHECKINGAny)Layer)Iterable)Tensorc                     ^  \ rS rSrSrS
U 4S jjr\R                  SS j5       r\R                  SS j5       r	\R                  SS j5       r
\R                  SS j5       r\R                  SS j5       rS	rU =r$ )BaseQuanter   zk
Built-in quanters and customized quanters should extend this base quanter
and implement abstract methods.
c                "   > [         TU ]  5         g N)super__init__)self	__class__s    `/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/paddle/quantization/base_quanter.pyr   BaseQuanter.__init__#   s        c                    g r    )r   inputs     r   forwardBaseQuanter.forward&   s    r   c                    g)zs
Get the scales used for quantization.
It can be none which means the quanter didn't hold scales for quantization.
Nr   r   s    r   scalesBaseQuanter.scales*        	r   c                    g)z}
Get the zero points used for quantization.
It can be none which means the quanter didn't hold zero points for quantization.
Nr   r   s    r   zero_pointsBaseQuanter.zero_points2   r   r   c                    g)zD
Get the axis of quantization. None means tensor-wise quantization.
Nr   r   s    r   
quant_axisBaseQuanter.quant_axis:       
 	r   c                    g)z%
Get the bit length of quantization.
Nr   r   s    r   
bit_lengthBaseQuanter.bit_lengthA   r%   r   r   )returnNone)r   r   r)   Tensor | npt.NDArray[Any])r)   r+   )r)   zint | Iterable[int])__name__
__module____qualname____firstlineno____doc__r   abcabstractmethodr   r   r    r#   r'   __static_attributes____classcell__)r   s   @r   r
   r
      s    
 	  	  	  	  	 r   r
   )	metaclass)
__future__r   r1   typingr   r   	paddle.nnr   collections.abcr   numpy.typingnptpaddler   ABCMetar
   r   r   r   <module>r>      s1    # 
 % ()%3;; )r   