Ë
    –\;j¡  ã                   ón   — d dl Z d dlmZ d dlmZ d dlZd dlZd dlm	Z	  G d„ de	e j                  ¬«      Zy)é    N)ÚIterable)ÚUnion)ÚLayerc                   óV  ‡ — e Zd ZdZˆ fd„Zej                  d„ «       Zej                  dee	j                  ej                  f   fd„«       Zej                  dee	j                  ej                  f   fd„«       Zej                  deeef   fd„«       Zej                  d„ «       Zˆ xZS )	ÚBaseQuanterzw
    Built-in quanters and customized quanters should extend this base quanter
    and implement abstract methods.
    c                 ó"   •— t         ‰| �  «        y ©N)ÚsuperÚ__init__)ÚselfÚ	__class__s    €úiG:\00. PROJECTS\API\Inventory\templateJSON\kerjaOCR\Lib\site-packages\paddle/quantization/base_quanter.pyr   zBaseQuanter.__init__   s   ø€ Ü‰ÑÕó    c                  ó   — y r	   © )r   Úinputs     r   ÚforwardzBaseQuanter.forward"   s   € àr   Úreturnc                  ó   — y)z‹
        Get the scales used for quantization.
        It can be none which meams the quanter didn't hold scales for quantization.
        Nr   ©r   s    r   ÚscaleszBaseQuanter.scales&   ó   € ð 	r   c                  ó   — y)z•
        Get the zero points used for quantization.
        It can be none which meams the quanter didn't hold zero points for quantization.
        Nr   r   s    r   Úzero_pointszBaseQuanter.zero_points.   r   r   c                  ó   — y)zT
        Get the axis of quantization. None means tensor-wise quantization.
        Nr   r   s    r   Ú
quant_axiszBaseQuanter.quant_axis6   ó   € ð
 	r   c                  ó   — y)z5
        Get the bit length of quantization.
        Nr   r   s    r   Ú
bit_lengthzBaseQuanter.bit_length=   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚabcÚabstractmethodr   r   ÚpaddleÚTensorÚnpÚndarrayr   r   Úintr   r   r   Ú__classcell__)r   s   @r   r   r      sÑ   ø„ ñô
ð 	×Ññó ðð 	×Ñð˜˜fŸm™m¨R¯Z©ZÐ7Ñ8ò ó ðð 	×Ñð˜U 6§=¡=°"·*±*Ð#<Ñ=ò ó ðð 	×Ñð˜E # x -Ñ0ò ó ðð 	×Ññó ôr   r   )Ú	metaclass)r$   Úcollections.abcr   Útypingr   Únumpyr(   r&   Ú	paddle.nnr   ÚABCMetar   r   r   r   Ú<module>r2      s+   ðó Ý $Ý ã ã Ý ô)�% 3§;¡;ö )r   