§
    kŠtjª  ã                   óR   — d dl Z ddlmZmZmZmZmZ ddlmZ  G d„ de¦  «        Z	dS )é    Né   )ÚTENSOR_NAME_QUANT_SUFFIXÚQuantizedValueÚQuantizedValueTypeÚattribute_to_kwargÚ	ms_domainé   )ÚQuantOperatorBasec                   ó(   ‡ — e Zd Zˆ fd„Zˆ fd„Zˆ xZS )ÚQLinearPoolc                 óL   •— t          ¦   «                              ||¦  «         d S )N)ÚsuperÚ__init__)ÚselfÚonnx_quantizerÚ	onnx_nodeÚ	__class__s      €úh/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/onnxruntime/quantization/operators/pooling.pyr   zQLinearPool.__init__   s#   ø€ Ý‰Œ×Ò˜¨Ñ3Ô3Ð3Ð3Ð3ó    c                 ó  •— | j         }| j                             |j        d         ¦  «        \  }}}}}| j                             |dg¦  «        \  }}}}	|r|€ t          ¦   «                              ¦   «         S |j        d         t          z   }
t          |j        d         |
||t          j
        ¦  «        }|| j        j        |j        d         <   i }|j        D ]$}|                     t          |¦  «        ¦  «         Œ%t          |d<   |j        r
|j        dz   nd}t#          j        j        d|j        z   |d         |d         |d         ||g|
g|fi |¤Ž}|	                     |¦  «         | j        xj        |	z  c_        d S )Nr   ÚdomainÚ_quantÚ ÚQLinear)ÚnodeÚ	quantizerÚ_get_quantization_paramsÚoutputÚquantize_activationr   Úquantizer   r   r   ÚInputÚquantized_value_mapÚ	attributeÚupdater   r   ÚnameÚonnxÚhelperÚ	make_nodeÚop_typeÚappendÚ	new_nodes)r   r   Ú
data_foundÚoutput_scale_nameÚoutput_zp_nameÚ_Úquantized_input_namesÚinput_zero_point_namesÚinput_scale_namesÚnodesÚqlinear_output_nameÚquantized_output_valueÚkwargsr#   Úqlinear_node_nameÚqnoder   s                   €r   r    zQLinearPool.quantize   sÁ  ø€ ØŒyˆð ŒN×3Ò3°D´KÀ´NÑCÔCñ	
ØØØØØð ŒN×.Ò.¨t°a°SÑ9Ô9ñ	
Ø!Ø"ØØð ð 	&Ð2Ð:Ý‘7”7×#Ò#Ñ%Ô%Ð%ð #œk¨!œnÕ/GÑGÐÝ!/ØŒK˜ŒNØØØÝÔ$ñ"
ô "
Ðð >TˆŒÔ*¨4¬;°q¬>Ñ:ð ˆØœð 	9ð 	9ˆIØ�MŠMÕ,¨YÑ7Ô7Ñ8Ô8Ð8Ð8Ý$ˆˆxÑØ48´IÐE˜DœI¨Ñ0Ð0À2ÐÝ”Ô%Ø˜œÑ$à% aÔ(Ø! !Ô$Ø& qÔ)Ø!Øðð !Ð!Øð
ð 
ð ð
ð 
ˆð 	�Š�UÑÔÐØŒÐ Ô  EÑ)Ð Ô Ð Ð r   )Ú__name__Ú
__module__Ú__qualname__r   r    Ú__classcell__)r   s   @r   r   r      sQ   ø€ € € € € ð4ð 4ð 4ð 4ð 4ð8*ð 8*ð 8*ð 8*ð 8*ð 8*ð 8*ð 8*ð 8*r   r   )
r&   Úquant_utilsr   r   r   r   r   Úbase_operatorr
   r   © r   r   ú<module>r@      s   ðØ €€€à uÐ uÐ uÐ uÐ uÐ uÐ uÐ uÐ uÐ uÐ uÐ uÐ uÐ uØ ,Ð ,Ð ,Ð ,Ð ,Ð ,ð<*ð <*ð <*ð <*ð <*Ð#ñ <*ô <*ð <*ð <*ð <*r   