Ë
    ÝÍ:jO	  ã                   óJ   — 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	y)é    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 )ÚQGlobalAveragePoolc                 ó&   •— t         ‰| �  ||«       y )N)ÚsuperÚ__init__)ÚselfÚonnx_quantizerÚ	onnx_nodeÚ	__class__s      €ú€/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/onnxruntime/quantization/operators/gavgpool.pyr   zQGlobalAveragePool.__init__   s   ø€ Ü‰Ñ˜¨Õ3ó    c                 óN  •— | j                   }|j                  dk(  sJ ‚|j                  d   | j                  j                  vrt
        ‰| �  «       S | j                  j                  |j                  d      }| j                  j                  |j                  d      }| j                  j                  |j                  d   «      \  }}}}}|r|n|j                  }|r|n|j                  }t        |j                  d   |j                  d   t        z   ||t        j                  «      }	|	| j                  j                  |j                  d   <   i }
|j                  D ]  }|
j!                  t#        |«      «       Œ t$        |
d<   d|
d<   |j&                  r|j&                  dz   nd}t)        j*                  j,                  d|j                  z   |j.                  |j                  |j                  ||g|	j.                  g|fi |
¤Ž}| j                  xj0                  |gz  c_        y )NÚGlobalAveragePoolr   ÚdomainÚchannels_lastÚ_quantÚ ÚQLinear)ÚnodeÚop_typeÚinputÚ	quantizerÚquantized_value_mapr   ÚquantizeÚ_get_quantization_paramsÚoutputÚ
scale_nameÚzp_namer   r   r   ÚInputÚ	attributeÚupdater   r   ÚnameÚonnxÚhelperÚ	make_nodeÚq_nameÚ	new_nodes)r   r   Úquantized_input_valueÚ
data_foundÚ output_scale_name_from_parameterÚoutput_zp_name_from_parameterÚ_Úoutput_scale_nameÚoutput_zp_nameÚquantized_output_valueÚkwargsr(   Ú
qnode_nameÚqnoder   s                 €r   r"   zQGlobalAveragePool.quantize   sÿ  ø€ Ø�y‰yˆØ�|‰|Ð2Ò2Ð2Ð2ð �:‰:�a‰= §¡× BÑ BÑBÜ‘7Ñ#Ó%Ð%à $§¡× BÑ BÀ4Ç:Á:ÈaÁ=Ñ QÐð !%§¡× BÑ BÀ4Ç:Á:ÈaÁ=Ñ QÐð �N‰N×3Ñ3°D·K±KÀ±NÓCñ	
ØØ,Ø)ØØñ AKÑ<ÐPe×PpÑPpÐÙ:DÑ6ÐJ_×JgÑJgˆÜ!/Ø�K‰K˜‰NØ�K‰K˜‰NÔ5Ñ5ØØÜ×$Ñ$ó"
Ðð >Tˆ�‰×*Ñ*¨4¯;©;°q©>Ñ:àˆØŸ™ò 	9ˆIØ�M‰MÔ,¨YÓ7Õ8ð	9ä$ˆˆxÑØ"#ˆˆÑØ-1¯YªY�T—Y‘Y Ò)¸Bˆ
ä—‘×%Ñ%Ø˜Ÿ™Ñ$à%×,Ñ,Ø%×0Ñ0Ø%×-Ñ-Ø!Øðð $×*Ñ*Ð+Øñ
ð ñ
ˆð 	�‰× Ò  U GÑ+Ö r   )Ú__name__Ú
__module__Ú__qualname__r   r"   Ú__classcell__)r   s   @r   r   r      s   ø„ ô4÷3,ð 3,r   r   )
r+   Úquant_utilsr   r   r   r   r   Úbase_operatorr
   r   © r   r   ú<module>rB      s   ðÛ ç uÕ uÝ ,ô7,Ð*õ 7,r   