ó
    Eñi)6  ã                   óz  • % S SK r S SKJr  S SKJr  S SKrS SKJs  Jr	  S SK
Js  Js  Jr  S SKJs  Js  Js  Jr  S SKJs  Js  Js  Jr  S SKJs  Js  Js  Js  Jr  S SKJs  Js  Jr  S SKJs  Js  Js  Jr  S SKJs  Js  Jr  S SKJs  Js  Js  Jr  S SKJs  Js  Js  Jr   S SK!rS SK"Js  J#r$  S SKJr  S SK%J&r&J'r'  S SK(J)r)J*r*  S SK+J,r,  S SK-J.r.  / S	Qr/\*\R`                  \)\Rb                  \Rd                  \ Rd                  \Rf                  \ Rf                  \Rh                  \ Rh                  \Rj                  \ Rj                  \Rl                  \ Rl                  \Rn                  \ Rn                  \Rp                  \ Rp                  \Rr                  \ Rr                  \Rt                  \ Rt                  \Rv                  \ Rv                  \Rx                  \ Rx                  \Rz                  \ Rz                  \R|                  \ R|                  0r?\@\\4   \AS
'   0 \*\R`                  _\)\Rb                  _\R„                  \R„                  _\R†                  \R†                  _\Rˆ                  \Rˆ                  _\Rf                  \Rf                  _\Rh                  \Rh                  _\Rj                  \Rj                  _\Rl                  \Rl                  _\Rn                  \Rn                  _\Rp                  \Rp                  _\RŠ                  \RŠ                  _\Rr                  \Rr                  _\Rt                  \Rt                  _\RŒ                  \RŒ                  _\RŽ                  \RŽ                  _\R�                  \R�                  _0 \R’                  \R’                  _\R”                  \R”                  _\R–                  \R–                  _\R˜                  \R˜                  _\Rš                  Rœ                  Rž                  \Rd                  _\Rd                  \Rd                  _\R                   \R                   _\R¢                  \R¢                  _\R¤                  \R¦                  _\R¨                  \R¨                  _\Rª                  \Rª                  _\R¬                  \R¬                  _\R®                  \R®                  _\R°                  \R°                  _\R²                  \R²                  _\R´                  \R´                  _\R¶                  \R¶                  _E\R¸                  \R¸                  \Rº                  \Rº                  \R¼                  \Rf                  \R¾                  \Rh                  \RÀ                  \Rj                  \RÂ                  \R¬                  \RÄ                  \R®                  \RÆ                  \R°                  \R®                  \R®                  \R°                  \R°                  \R¶                  \R¶                  \RÈ                  \Rd                  \Rd                  \Rd                  \Rh                  \Rh                  \Rj                  \Rj                  0Ere\@\\4   \AS'   \Rh                  \Rh                  \Rj                  \Rj                  \Rd                  \Rd                  \Rš                  Rœ                  Rž                  \Rd                  \R¼                  \R¼                  \R¾                  \R¾                  \RÀ                  \RÀ                  \RÂ                  \RÂ                  \RÄ                  \RÄ                  \RÆ                  \RÆ                  \R®                  \R®                  \R°                  \R°                  \R¶                  \R¶                  \RÈ                  \RÈ                  0rf\@\\4   \AS'   \Rv                  \Rv                  \Rd                  \Rd                  \Rd                  \Rd                  \Rš                  Rœ                  Rž                  \Rd                  \R|                  \R|                  \RÎ                  \RÎ                  \Rx                  \Rx                  \Rz                  \Rz                  \R¶                  \R¶                  \Rt                  \Rt                  \Rr                  \Rr                  0rh\@\\4   \AS'   \RÒ                  1rj\k\   \AS'   \$RØ                  \RÚ                  R"                  RØ                  \$RÜ                  \RÚ                  R"                  RÜ                  \$RÞ                  \RÚ                  R"                  RÞ                  \$Rà                  \RÚ                  R"                  Rà                  \$Râ                  \RÚ                  R"                  Râ                  \$Rä                  \RÚ                  R"                  Rä                  0rs\@\\t-  \4   \AS'   \Rê                  \&\Rì                  \&\Rî                  \&\Rð                  \'0ry\@\\4   \AS'   \Rd                  \	Rô                  R"                  Rd                  0r{\@\\4   \AS'   \Rd                  \	Rô                  R"                  R(                  Rd                  0r|\@\\4   \AS'   S\k\   4S jr}S\@\\4   4S jr~S\@\\4   4S jrS\@\\4   4S jr€S\@\\4   4S jr�  S+S\S\@\\4   S-  S\‚S\4S jjrƒ S,S\S\@\\4   S-  S\4S jjr„S\@\\4   4S jr…S\@\\4   4S  jr†S\@\\4   4S! jr‡S\@\\4   4S" jrˆS\k\   4S# jr‰S\k\   4S$ jrŠS\@\\t-  \4   4S% jr‹S&\\t-  S\4S' jrŒS(\R                  GR                  S\S-  4S) jrŽS(\R                  GR                  S\‚4S* jr�g)-é    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   • [         R                  R                  [         R                  R                  1n U $ )z8These modules cannot have observers inserted by default.)r   ÚquantizableÚLSTMÚMultiheadAttention)Úno_observerss    Úh/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/ao/quantization/quantization_mappings.pyr   r   Ñ   s&   € ä—N‘N×'Ñ'¬¯©×)JÑ)JÐK€LØÐó    c                  ó6   • [         R                  " [        5      $ )z8Get module mapping for post training static quantization)ÚcopyÚdeepcopyr   © r+   r*   r   r   ×   s   € ä�=Š=Ô=Ó>Ð>r+   c                  ó6   • [         R                  " [        5      $ )zBGet reference module mapping for post training static quantization)r-   r.   r   r/   r+   r*   r   r   Ü   s   € ä�=Š=ÔGÓHÐHr+   c                  ó¾   • [         R                  " [        5      n [        R                  U [
        R                  '   [        R                  U [
        R                  '   U $ )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                  ó6   • [         R                  " [        5      $ )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                 óÐ   • Uc  0 n[        U(       a  [        O[        U5      nUR                  U S5      nUc  [	        S[        U 5       3S-   5      e[        R                  " U5      $ )z]n 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                 ó¶   • Uc  0 n[        [        U5      nUR                  U S5      nUc  [        S[	        U 5       3S-   5      e[
        R                  " U5      $ )z^n 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                  ó6   • [         R                  " [        5      $ )z:Get default module mapping for quantization aware training)r-   r.   r   r/   r+   r*   r   r     s   € ä�=Š=Ô4Ó5Ð5r+   c                  ó¾   • [         R                  " [        5      n [        R                  U [
        R                  '   [        R                  U [
        R                  '   U $ )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                  ó   • [         $ )z9Get module mapping for post training dynamic quantization)r   r/   r+   r*   r   r   ,  s   € ä0Ð0r+   c                  ó   • [         $ )z@Get module mapping for post training dynamic sparse quantization)r   r/   r+   r*   r   r   1  s   € ä7Ð7r+   c                  óî   • [        [        R                  5       5      [        [        R                  5       5      -  [        [        R                  5       5      -  [
        -  n [        R                  " U 5      $ )zWGet 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                  ó¢  • [        [        R                  5       5      [        [        R                  5       5      -  [        [        R                  5       5      -  [        [        R                  5       5      -  [        [        R                  5       5      -  [        [        R                  5       5      -  [        -  n [        R                  " U 5      $ )zKGet 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                  ó6   • [         R                  " [        5      $ ©N)r-   r.   r   r/   r+   r*   r!   r!   S  s   € ô �=Š=ÔEÓFÐFr+   Úfloat_opc                 óf   • [         R                  U 5      nUc  [        S[        U 5       S35      eU$ )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                 ó>   • [         R                  [        U 5      5      $ )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                 óL   • U R                   =(       a    [        U 5      [        ;   $ 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+   