Ë
    L²j)6  ã                   óT  — U d dl Z d dlmZ d dlmZ d dlZd dlmc mZ	 d dl
mc mc mZ d dlmc mc mc mZ d dlmc mc mc mZ d dlmc mc mc mc mZ d dlmc mc mZ d dlmc mc mc mZ d dlmc mc mZ d dlmc mc mc mZ d dlmc mc mc mZ  d dl!Zd dl"mc m#Z$ d dlmZ d dl%m&Z&m'Z' d dl(m)Z)m*Z* d dl+m,Z, d dl-m.Z. g d	¢Z/e*ej`                  e)ejb                  ejd                  e jd                  ejf                  e jf                  ejh                  e jh                  ejj                  e jj                  ejl                  e jl                  ejn                  e jn                  ejp                  e jp                  ejr                  e jr                  ejt                  e jt                  ejv                  e jv                  ejx                  e jx                  ejz                  e jz                  ej|                  e j|                  iZ?e@eef   eAd
<   i e*ej`                  “e)ejb                  “ej„                  ej„                  “ej†                  ej†                  “ejˆ                  ejˆ                  “ejf                  ejf                  “ejh                  ejh                  “ejj                  ejj                  “ejl                  ejl                  “ejn                  ejn                  “ejp                  ejp                  “ejŠ                  ejŠ                  “ejr                  ejr                  “ejt                  ejt                  “ejŒ                  ejŒ                  “ejŽ                  ejŽ                  “ej�                  ej�                  “i ej’                  ej’                  “ej”                  ej”                  “ej–                  ej–                  “ej˜                  ej˜                  “ejš                  jœ                  jž                  ejd                  “ejd                  ejd                  “ej                   ej                   “ej¢                  ej¢                  “ej¤                  ej¦                  “ej¨                  ej¨                  “ejª                  ejª                  “ej¬                  ej¬                  “ej®                  ej®                  “ej°                  ej°                  “ej²                  ej²                  “ej´                  ej´                  “ej¶                  ej¶                  “¥ej¸                  ej¸                  ejº                  ejº                  ej¼                  ejf                  ej¾                  ejh                  ejÀ                  ejj                  ejÂ                  ej¬                  ejÄ                  ej®                  ejÆ                  ej°                  ej®                  ej®                  ej°                  ej°                  ej¶                  ej¶                  ejÈ                  ejd                  ejd                  ejd                  ejh                  ejh                  ejj                  ejj                  i¥Zee@eef   eAd<   ejh                  ejh                  ejj                  ejj                  ejd                  ejd                  ejš                  jœ                  jž                  ejd                  ej¼                  ej¼                  ej¾                  ej¾                  ejÀ                  ejÀ                  ejÂ                  ejÂ                  ejÄ                  ejÄ                  ejÆ                  ejÆ                  ej®                  ej®                  ej°                  ej°                  ej¶                  ej¶                  ejÈ                  ejÈ                  iZfe@eef   eAd<   ejv                  ejv                  ejd                  ejd                  ejd                  ejd                  ejš                  jœ                  jž                  ejd                  ej|                  ej|                  ejÎ                  ejÎ                  ejx                  ejx                  ejz                  ejz                  ej¶                  ej¶                  ejt                  ejt                  ejr                  ejr                  iZhe@eef   eAd<   ejÒ                  hZjeke   eAd<   e$jØ                  ejÚ                  j"                  jØ                  e$jÜ                  ejÚ                  j"                  jÜ                  e$jÞ                  ejÚ                  j"                  jÞ                  e$jà                  ejÚ                  j"                  jà                  e$jâ                  ejÚ                  j"                  jâ                  e$jä                  ejÚ                  j"                  jä                  iZse@eetz  ef   eAd<   ejê                  e&ejì                  e&ejî                  e&ejð                  e'iZye@eef   eAd<   ejd                  e	jô                  j"                  jd                  iZ{e@eef   eAd<   ejd                  e	jô                  j"                  j(                  jd                  iZ|e@eef   eAd<   deke   fd„Z}de@eef   fd„Z~de@eef   fd„Zde@eef   fd„Z€de@eef   fd„Z�	 	 d+dede@eef   dz  de‚defd„Zƒ	 d,dede@eef   dz  defd„Z„de@eef   fd„Z…de@eef   fd „Z†de@eef   fd!„Z‡de@eef   fd"„Zˆdeke   fd#„Z‰deke   fd$„ZŠde@eetz  ef   fd%„Z‹d&eetz  defd'„ZŒd(ej                  �j                  dedz  fd)„ZŽd(ej                  �j                  de‚fd*„Z�y)-é    N)ÚCallable)ÚAny)Únn)Ú+default_fixed_qparams_range_0to1_fake_quantÚ.default_fixed_qparams_range_neg1to1_fake_quant)ÚDeQuantStubÚ	QuantStub)Úget_combined_dict)Útype_before_parametrizations)Ú.DEFAULT_REFERENCE_STATIC_QUANT_MODULE_MAPPINGSÚ$DEFAULT_STATIC_QUANT_MODULE_MAPPINGSÚDEFAULT_QAT_MODULE_MAPPINGSÚ%DEFAULT_DYNAMIC_QUANT_MODULE_MAPPINGSÚ,DEFAULT_FLOAT_TO_QUANTIZED_OPERATOR_MAPPINGSÚ"DEFAULT_MODULE_TO_ACT_POST_PROCESSÚ+DEFAULT_STATIC_SPARSE_QUANT_MODULE_MAPPINGSÚ,DEFAULT_DYNAMIC_SPARSE_QUANT_MODULE_MAPPINGSÚno_observer_setÚ(get_default_static_quant_module_mappingsÚ2get_default_static_quant_reference_module_mappingsÚ*get_embedding_static_quant_module_mappingsÚ/get_default_static_sparse_quant_module_mappingsÚget_static_quant_module_classÚget_dynamic_quant_module_classÚget_default_qat_module_mappingsÚ!get_embedding_qat_module_mappingsÚ)get_default_dynamic_quant_module_mappingsÚ0get_default_dynamic_sparse_quant_module_mappingsÚ$get_default_qconfig_propagation_listÚ&get_default_compare_output_module_listÚ0get_default_float_to_quantized_operator_mappingsÚget_quantized_operatorr   r   r   r   Ú_INCLUDE_QCONFIG_PROPAGATE_LISTr   r   r   r   Úreturnc                  ón   — t         j                  j                  t         j                  j                  h} | S )z8These modules cannot have observers inserted by default.)r   ÚquantizableÚLSTMÚMultiheadAttention)Úno_observerss    új/var/www/html/ia-enhanced/venv/lib/python3.12/site-packages/torch/ao/quantization/quantization_mappings.pyr   r   Ñ   s&   € ä—N‘N×'Ñ'¬¯©×)JÑ)JÐK€LØÐó    c                  ó4   — t        j                  t        «      S )z8Get module mapping for post training static quantization)ÚcopyÚdeepcopyr   © r+   r*   r   r   ×   s   € ä�=‰=Ô=Ó>Ð>r+   c                  ó4   — t        j                  t        «      S )zBGet reference module mapping for post training static quantization)r-   r.   r   r/   r+   r*   r   r   Ü   s   € ä�=‰=ÔGÓHÐHr+   c                  ó¼   — t        j                  t        «      } t        j                  | t
        j                  <   t        j                  | t
        j                  <   | S )z7Get module mapping, including mapping for embedding QAT)r-   r.   r   ÚnnqÚEmbeddingBagÚnnqatÚ	Embedding©Úmappings    r*   r   r   á   s>   € ä�m‰mÔ@ÓA€GÜ"%×"2Ñ"2€GŒE×ÑÑÜ"Ÿ}™}€GŒE�O‰OÑØ€Nr+   c                  ó4   — t        j                  t        «      S )z?Get module mapping for post training static sparse quantization)r-   r.   r   r/   r+   r*   r   r   é   s   € ä�=‰=ÔDÓEÐEr+   Úfloat_module_classÚadditional_static_quant_mappingÚis_referencec                 óÀ   — |€i }t        |rt        nt        |«      }|j                  | d«      }|€t	        dt        | «      › �dz   «      ‚t        j                  |«      S )zen Get the statically quantized module class corresponding to
    the floating point module class
    NúFloating point module class ú5 does not have a corresponding quantized module class)r
   r   r   ÚgetÚAssertionErrorÚstrr-   r.   )r9   r:   r;   Úall_mappingsÚstatic_quant_module_classs        r*   r   r   î   s}   € ð 'Ð.Ø*,Ð'Ü$áõ 	7ä1Ø'ó	€Lð !-× 0Ñ 0Ð1CÀTÓ JÐØ Ð(ÜØ*¬3Ð/AÓ+BÐ*CÐDØEñFó
ð 	
ô �=‰=Ð2Ó3Ð3r+   Ú additional_dynamic_quant_mappingc                 ó°   — |€i }t        t        |«      }|j                  | d«      }|€t        dt	        | «      › �dz   «      ‚t        j                  |«      S )zfn Get the dynamically quantized module class corresponding to
    the floating point module class
    Nr=   r>   )r
   r   r?   r@   rA   r-   r.   )r9   rD   rB   Údynamic_quant_module_classs       r*   r   r     su   € ð (Ð/Ø+-Ð(Ü$Ü-Ð/Oó€Lð ".×!1Ñ!1Ð2DÀdÓ!KÐØ!Ð)ÜØ*¬3Ð/AÓ+BÐ*CÐDØEñFó
ð 	
ô �=‰=Ð3Ó4Ð4r+   c                  ó4   — t        j                  t        «      S )z:Get default module mapping for quantization aware training)r-   r.   r   r/   r+   r*   r   r     s   € ä�=‰=Ô4Ó5Ð5r+   c                  ó¼   — t        j                  t        «      } t        j                  | t
        j                  <   t        j                  | t
        j                  <   | S )z‹Get module mapping for quantization aware training
    This is includes default values in addition to
    enabling qat for embeddings.
    )r-   r.   r   r4   r3   r   r5   r6   s    r*   r   r   !  s>   € ô
 �m‰mÔ7Ó8€GÜ$×1Ñ1€GŒB�O‰OÑÜ!ŸO™O€GŒB�L‰LÑØ€Nr+   c                  ó   — t         S )z9Get module mapping for post training dynamic quantization)r   r/   r+   r*   r   r   ,  s   € ä0Ð0r+   c                  ó   — t         S )z@Get module mapping for post training dynamic sparse quantization)r   r/   r+   r*   r   r   1  s   € ä7Ð7r+   c                  óì   — t        t        j                  «       «      t        t        j                  «       «      z  t        t        j                  «       «      z  t
        z  } t        j                  | «      S )z_Get the default list of module types that we'll attach qconfig
    attribute to in prepare
    )Úsetr   Úkeysr   r   r#   r-   r.   )Ú#QCONFIG_PROPAGATE_MODULE_CLASS_LISTs    r*   r   r   6  se   € ô
 	Ô0×5Ñ5Ó7Ó8Ü
Ô)×.Ñ.Ó0Ó
1ñ	2ä
Ô3×8Ñ8Ó:Ó
;ñ	<ô *ñ	*ð (ô �=‰=Ð<Ó=Ð=r+   c                  ó   — t        t        j                  «       «      t        t        j                  «       «      z  t        t        j                  «       «      z  t        t        j                  «       «      z  t        t        j                  «       «      z  t        t        j                  «       «      z  t        z  } t        j                  | «      S )zSGet list of module class types that we will record output
    in numeric suite
    )	rL   r   Úvaluesr   r   rM   r#   r-   r.   )Ú.NUMERIC_SUITE_COMPARE_MODEL_OUTPUT_MODULE_LISTs    r*   r    r    C  s°   € ô
 	Ô0×7Ñ7Ó9Ó:Ü
Ô)×0Ñ0Ó2Ó
3ñ	4ä
Ô3×:Ñ:Ó<Ó
=ñ	>ô Ô2×7Ñ7Ó9Ó
:ñ	;ô Ô)×.Ñ.Ó0Ó
1ñ		2ô
 Ô3×8Ñ8Ó:Ó
;ñ	<ô *ñ	*ð 3ô �=‰=ÐGÓHÐHr+   c                  ó4   — t        j                  t        «      S ©N)r-   r.   r   r/   r+   r*   r!   r!   S  s   € ô �=‰=ÔEÓFÐFr+   Úfloat_opc                 ód   — t         j                  | «      }|€t        dt        | «      › d�«      ‚|S )z>Get the quantized operator corresponding to the float operatorz	Operator z) does not have corresponding quantized op)r   r?   r@   rA   )rT   Úquantized_ops     r*   r"   r"   Z  s>   € ä?×CÑCÀHÓM€LØÐÜØœ˜H›�Ð&OÐPó
ð 	
ð Ðr+   Úmodulec                 ó>   — t         j                  t        | «      «      S )zÝGet the special activation post process for `module`, this has
    higher priority than the activation post process in `qconfig`
    e.g.
    input: torch.nn.Sigmoid
    output: default_affine_fixed_qparam_fake_quant
    )r   r?   r   ©rW   s    r*   Ú_get_special_act_post_processrZ   d  s   € ô .×1Ñ1Ô2NÈvÓ2VÓWÐWr+   c                 ó@   — | j                   xr t        | «      t        v S rS   )ÚtrainingÚtyper   rY   s    r*   Ú_has_special_act_post_processr^   n  s   € Ø�?‰?ÒQœt F›|Ô/QÐQÐQr+   )NFrS   )�r-   Úcollections.abcr   Útypingr   ÚtorchÚtorch.ao.nnÚaor   Úao_nnÚtorch.ao.nn.intrinsicÚ	intrinsicÚnniÚtorch.ao.nn.intrinsic.qatÚqatÚnniqatÚtorch.ao.nn.intrinsic.quantizedÚ	quantizedÚnniqÚ'torch.ao.nn.intrinsic.quantized.dynamicÚdynamicÚnniqdÚtorch.ao.nn.qatr4   Útorch.ao.nn.qat.dynamicÚnnqatdÚtorch.ao.nn.quantizedr2   Útorch.ao.nn.quantized.dynamicÚnnqdÚtorch.ao.nn.quantized.referenceÚ	referenceÚnnqrÚtorch.ao.nn.sparseÚtorch.nn.functionalÚ
functionalÚFÚ#torch.ao.quantization.fake_quantizer   r   Útorch.ao.quantization.stubsr   r	   Útorch.ao.quantization.utilsr
   Útorch.nn.utils.parametrizer   Ú__all__ÚQuantizeÚ
DeQuantizeÚLinearÚConv1dÚConv2dÚConv3dÚConvTranspose1dÚConvTranspose2dÚConvTranspose3dr5   r3   ÚGRUCellÚLSTMCellÚRNNCellr'   r   ÚdictÚ__annotations__ÚBatchNorm2dÚBatchNorm3dÚDropoutÚELUÚ	GroupNormÚ	HardswishÚInstanceNorm1dÚInstanceNorm2dÚInstanceNorm3dÚ	LayerNormÚ	LeakyReLUÚmodulesÚlinearÚNonDynamicallyQuantizableLinearÚReLU6ÚPReLUÚFloatFunctionalÚQFunctionalÚBNReLU2dÚBNReLU3dÚ
ConvReLU1dÚ
ConvReLU2dÚ
ConvReLU3dÚ	ConvAdd2dÚConvAddReLU2dÚ
LinearReLUÚLinearLeakyReLUÚ
LinearTanhÚConvBn1dÚConvBn2dÚConvBn3dÚConvBnReLU1dÚConvBnReLU2dÚConvBnReLU3dÚ
LinearBn1dr   r   ÚGRUr   Ú
Sequentialr#   rL   ÚeluÚopsÚ	hardswishÚinstance_normÚ
layer_normÚ
leaky_reluÚdropoutr   rA   ÚHardsigmoidÚSigmoidÚSoftmaxÚTanhr   Úsparser   r   r   r   r   r   r   Úboolr   r   r   r   r   r   r   r    r!   r"   ÚModulerZ   r^   r/   r+   r*   ú<module>rÄ      s
  ðÜ Ý $Ý ã ß Ð ß #Ó #ß *Ö *ß .Ö .ß 7× 7Ñ 7ß Ó ß (Ö (ß #Ó #ß ,Ö ,ß .Ö .ó ß Ð Ý ÷÷ ?Ý 9Ý Cò€ð8 ˆs�|‰|Ø�—‘Ø‡I�Iˆt�{‰{Ø‡I�Iˆt�{‰{Ø‡I�Iˆt�{‰{Ø‡I�Iˆt�{‰{Ø×Ñ˜×,Ñ,Ø×Ñ˜×,Ñ,Ø×Ñ˜×,Ñ,Ø‡L�L�$—.‘.Ø‡O�O�T×&Ñ&Ø‡J�J�—‘Ø‡K�K�—‘Ø‡J�J�—‘Ø‡G�GˆT�Y‰YðGÐ .°°X¸s°]Ñ0Có ð&5=Øˆs�|‰|ð5=à�—‘ð5=ð ‡N�N�C—O‘Oð5=ð ‡N�N�C—O‘Oð	5=ð
 ‡J�J�—‘ð5=ð ‡I�Iˆs�z‰zð5=ð ‡I�Iˆs�z‰zð5=ð ‡I�Iˆs�z‰zð5=ð ×Ñ˜×+Ñ+ð5=ð ×Ñ˜×+Ñ+ð5=ð ×Ñ˜×+Ñ+ð5=ð ‡F�FˆC�G‰Gð5=ð ‡L�L�#—-‘-ð5=ð ‡O�O�S×%Ñ%ð5=ð ‡L�L�#—-‘-ð5=ð  ‡L�L�#—-‘-ð!5=ð" ×Ñ�s×)Ñ)ñ#5=ð$ ×Ñ�s×)Ñ)ð%5=ð& ×Ñ�s×)Ñ)ð'5=ð( ‡L�L�#—-‘-ð)5=ð* ‡L�L�#—-‘-ð+5=ð, ‡J�J×Ñ×5Ñ5°s·z±zð-5=ð. ‡I�Iˆs�z‰zð/5=ð0 ‡H�Hˆc�i‰ið15=ð2 ‡H�Hˆc�i‰ið35=ð6 ×Ñ˜Ÿ™ð75=ð: ‡L�L�$—-‘-ð;5=ð< ‡L�L�$—-‘-ð=5=ð> ‡N�N�D—O‘Oð?5=ð@ ‡N�N�D—O‘OðA5=ðB ‡N�N�D—O‘OðC5=ðD ‡M�M�4—>‘>ðE5=ðF ×Ñ�t×)Ñ)ðG5=ðH ‡N�N�D—O‘OñI5=ðJ ×Ñ˜×-Ñ-Ø‡N�N�D—O‘OØ
‡O�O�S—Z‘ZØ
‡O�O�S—Z‘ZØ
‡O�O�S—Z‘ZØ
×Ñ˜Ÿ™Ø
×Ñ˜Ÿ™Ø
×Ñ˜Ÿ™Ø
×Ñ�t—‘Ø
×Ñ�t—‘Ø
×Ñ�t—‘Ø
×Ñ�s—z‘zà	‡L�L�#—*‘*Ø	‡L�L�#—*‘*Ø	‡L�L�#—*‘*ñi5=Ð $ d¨8°S¨=Ñ&9ó 5ðr ‡I�Iˆu�|‰|Ø‡I�Iˆu�|‰|Ø‡I�Iˆu�|‰|Ø‡J�J×Ñ×5Ñ5°u·|±|à‡L�L�&—/‘/Ø‡L�L�&—/‘/Ø‡L�L�&—/‘/Ø×Ñ�f×)Ñ)Ø×Ñ�f×)Ñ)Ø×Ñ�f×)Ñ)Ø‡N�N�F×%Ñ%Ø‡N�N�F×%Ñ%Ø‡N�N�F×%Ñ%Ø‡N�N�F×%Ñ%ð4Ð ˜T (¨C -Ñ0ó ð( ‡J�J�—‘Ø‡I�Iˆt�{‰{Ø
‡M�M�4—;‘;Ø‡J�J×Ñ×5Ñ5°t·{±{Ø‡G�GˆT�Y‰YØ‡F�FˆD�H‰HØ‡K�K�—‘Ø‡J�J�—‘Ø‡N�N�E×$Ñ$Ø‡O�O�S×%Ñ%Ø‡L�L�#—-‘-ð>Ð % t¨H°c¨MÑ':ó ð0 ‡M�Mð2Ð   X¡ó ð ‡E�Eˆ5�9‰9×Ñ×"Ñ"Ø‡K�K�—‘×$Ñ$×.Ñ.Ø‡O�O�U—Y‘Y×(Ñ(×6Ñ6Ø‡L�L�%—)‘)×%Ñ%×0Ñ0Ø‡L�L�%—)‘)×%Ñ%×0Ñ0Ø‡I�Iˆu�y‰y×"Ñ"×*Ñ*ðPÐ ,¨d°8¸c±>À8Ð3KÑ.Ló ð ‡N�NÐ?Ø‡J�JÐ;Ø‡J�JÐ;Ø‡G�GÐ;ð	@Ð " D¨°8Ð);Ñ$<ó ð ‡I�Iˆu�|‰|×%Ñ%×,Ñ,ðDÐ +¨T°(¸C°-Ñ-@ó ð ‡I�Iˆu�|‰|×%Ñ%×-Ñ-×4Ñ4ðEÐ ,¨d°8¸S°=Ñ.Aó ð
˜˜S™ó ð?°$°xÀ°}Ñ2Eó ?ð
I¸DÀÈ3ÀÑ<Oó Ið
°D¸À3¸Ñ4Gó ðF¸¸hÈ¸mÑ9Ló Fð CGØñ4Ø ð4à%)¨(°C¨-Ñ%8¸4Ñ%?ð4ð ð4ð 	ó	4ð6 DHñ5Ø ð5à&*¨8°S¨=Ñ&9¸DÑ&@ð5ð 	ó5ð*6¨¨h¸¨mÑ)<ó 6ð
¨4°¸#°Ñ+>ó ð1°4¸À#¸Ñ3Fó 1ð
8¸$¸xÈ¸}Ñ:Mó 8ð

>¨c°(©mó 
>ðI°°H±ó Ið G¸$Øˆs�N�HÐñ;ó Gð X°¡^ð ¸ó ðX¨%¯(©(¯/ª/ð X¸hÈ¹oó XðR¨%¯(©(¯/ª/ð R¸dô Rr+   