+
    ˜°³j…Ï ã                   ó†  € R t ^ RIt^ RIHu Hu Hu Hu Ht ^ RI	Hu Hu Ht
 ^ RIHu Hu Hu Ht ^ RIHt ^ RIHt ^ RIHu Ht ^ RIHt ^ RIHt ^ RIHtHtHtHtHtHtHtH t H!t!H"t"H#t#H$t$H%t%H&t&H't'H(t(H)t)H*t*H+t+H,t,H-t-H.t.H/t/H0t0H1t1H2t2 ^ RI3H4t4H5t5H6t6 ^ RI7H8t8 ^ RI9H:t: ^ RI;H<t<H=t=  ^ R	I>H?t?H@t@ ^ R
IAHBtBHCtCHDtDHEtE ^ RIFHGtG ^ RIHHItI RtJ^ RILtL^ RIMtM^ RINtN^ RIOtO^ RIPtP^ RIQHRtR ^ RISHTtT ^ RIUtV^ RIWHXtY ^ RIZH[t[  ! R R4      t\R t]R t^]P                  P¿                  4       t`]`3R lta ! R R4      tbRÒR ltcR tdR teR tfR tgR thRÓR ltiR  tjR! tkR" tlR# tmR$ tnR% toR& tpR' tqR( trR) ts ^ RItttRtu]PPì                  ! ]u'       * R*4      twR+ tx]VPò                  R3R, ltzRÔR- lt{RÕR. lt|R/ t} ! R0 R1]=4      t~ ! R2 R3]~4      t ! R4 R5]P                  EP                   4      t� ! R6 R7]P                  EP                   4      t‚ ! R8 R9]P                  EP                   4      tƒ ! R: R;]EP                   4      t„ ! R< R=]P                  EP                   4      t… ! R> R?]P                  EP                   4      t† ! R@ RA]P                  EP                   4      t‡ ! RB RC]P                  EP                   4      tˆ ! RD RE]P                  EP                   4      t‰ ! RF RG]P                  EP                   4      tŠ ! RH RI]P                  EP                   4      t‹ ! RJ RK]P                  EP                   4      tŒ ! RL RM]P                  EP                   4      t� ! RN RO]P                  EP                   4      tŽ ! RP RQ]P                  EP                   4      t� ! RR RS]P                  EP                   4      t� ! RT RU]P                  EP                   4      t‘ ! RV RW]EP                   4      t’ ! RX RY]P                  EP                   4      t“ ! RZ R[]P                  EP                   4      t” ! R\ R]]P                  EP                   4      t• ! R^ R_]P                  EP                   4      t– ! R` Ra]P                  EP                   4      t— ! Rb Rc]P                  EP                   4      t˜ ! Rd Re]P                  EP                   4      t™ ! Rf Rg]P                  EP                   4      tš ! Rh Ri]P                  EP                   4      t› ! Rj Rk]P                  EP                   4      tœ ! Rl Rm]P                  EP                   4      t� ! Rn Ro]P                  EP                   4      tž ! Rp Rq]P                  EP                   4      tŸ ! Rr Rs]P                  EP                   4      t  ! Rt Ru]P                  EP                   4      t¡ ! Rv Rw]P                  EP                   4      t¢ ! Rx Ry]P                  EP                   4      t£ ! Rz R{]P                  EP                   4      t¤ ! R| R}]P                  EP                   4      t¥ ! R~ R]P                  EP                   4      t¦ ! R€ R�]P                  EP                   4      t§ ! R‚ Rƒ]P                  EP                   4      t¨ ! R„ R…]EP                   4      t© ! R† R‡]EP                   4      tª ! Rˆ R‰]P                  EP                   4      t« ! RŠ R‹]P                  EP                   4      t¬ ! RŒ R�]P                  EP                   4      t­ ! RŽ R�]EP                   4      t® ! R� R‘]EP                   4      t¯ ! R’ R“]P                  EP                   4      t° ! R” R•]P                  EP                   4      t± ! R– R—]P                  EP                   4      t² ! R˜ R™]P                  EP                   4      t³ ! Rš R›]P                  EP                   4      t´ ! Rœ R�]P                  EP                   4      tµ ! Rž RŸ]P                  EP                   4      t¶ ! R  R¡]¶4      t· ! R¢ R£]EP                   4      t¸ ! R¤ R¥]EP                   4      t¹ ! R¦ R§]EP                   4      tº ! R¨ R©]EP                   4      t» ! Rª R«]EP                   4      t¼ ! R¬ R­]EPz                  4      t¾ ! R® R¯]EP                   4      t¿ ! R° R±]EP                   4      tÀ ! R² R³]EP                   4      tÁ ! R´ Rµ]P                  EP                   4      tÂ ! R¶ R·]EP                   4      tÃ ! R¸ R¹]P                  EP                   4      tÄ ! Rº R»]P                  EP                   4      tÅ ! R¼ R½]P                  EP                   4      tÆ ! R¾ R¿]P                  EP                   4      tÇ ! RÀ RÁ]P                  EP                   4      tÈ ! RÂ RÃ]P                  EP                   4      tÉ ! RÄ RÅ]P                  EP                   4      tÊ ! RÆ RÇ]EP                   4      tË ! RÈ RÉ]EP                   4      tÌ ! RÊ RË]EP                   4      tÍ ! RÌ RÍ4      tÎRÎ]EPž                  3RÏ ltÐRÐRÎ]EPž                  3RÑ ltÑR#   ]K d    RtJ E	Lái ; i  ]K d    Rtu E	LIi ; i)ÖzˆImporting this file includes common utility methods and base classes for
checking quantization api and properties of resulting modules.
N)Úcontrol_flow)Ú_FusedModule)ÚconvertÚdefault_dynamic_qat_qconfigÚdefault_dynamic_qconfigÚdefault_dynamic_quant_observerÚdefault_embedding_qat_qconfigÚdefault_observerÚdefault_per_channel_qconfigÚdefault_qconfigÚ%default_symmetric_qnnpack_qat_qconfigÚdefault_weight_observerÚDeQuantStubÚ!float_qparams_weight_only_qconfigÚget_default_qat_qconfigÚget_default_qat_qconfig_mappingÚget_default_qconfigÚget_default_qconfig_mappingÚPerChannelMinMaxObserverÚpropagate_qconfig_ÚQConfigÚQConfigMappingÚquantizeÚquantize_dynamic_jitÚquantize_jitÚ	QuantStubÚ	QuantTypeÚQuantWrapper)Ú)get_default_dynamic_quant_module_mappingsÚget_default_qat_module_mappingsÚ$get_default_qconfig_propagation_list)Ú_load_for_lite_interpreter)Úoverride_quantized_engine)ÚTEST_WITH_ROCMÚTestCase)ÚNSSingleResultValuesTypeÚ
NSSubgraph)Ú
convert_fxÚconvert_to_reference_fxÚ
prepare_fxÚprepare_qat_fx)ÚGraphModule)ÚNodeTF)ÚAny)ÚCallable)Ú	FileCheckc                   ól   a € ] tR t^Ut o RtR t]R 4       t]R 4       t]R 4       t	R t
R tR tR	tV tR
# )ÚNodeSpecz"Used for checking GraphModule Nodec                ó   € Wn         W n        R# )z—
op: call_function | call_module
target:
  for call_function, target would be a function
  for call_module, target would be the type of PyTorch module
N©ÚopÚtarget)Úselfr4   r5   s   &&&Úl/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/testing/_internal/common_quantization.pyÚ__init__ÚNodeSpec.__init__X   s   € ð ŒØŽó    c                ó   € \        R V4      # )Úcall_function©r1   ©Úclsr5   s   &&r7   r<   ÚNodeSpec.call_functionb   s   € ä˜¨Ó0Ð0r:   c                ó   € \        R V4      # )Úcall_methodr=   r>   s   &&r7   rB   ÚNodeSpec.call_methodf   ó   € ä˜ vÓ.Ð.r:   c                ó   € \        R V4      # )Úcall_moduler=   r>   s   &&r7   rF   ÚNodeSpec.call_modulej   rD   r:   c                óD   € \        V P                  V P                  34      # ©N)Úhashr4   r5   ©r6   s   &r7   Ú__hash__ÚNodeSpec.__hash__n   s   € Ü�T—W‘W˜dŸk™kÐ*Ó+Ð+r:   c                ó®   € \        V\        4      '       g   \        # V P                  VP                  8H  ;'       d    V P                  VP                  8H  # rI   )Ú
isinstancer1   ÚNotImplementedr4   r5   )r6   Úothers   &&r7   Ú__eq__ÚNodeSpec.__eq__q   s=   € Ü˜%¤×*Ò*Ü!Ð!à�w‰w˜%Ÿ(™(Ñ"×BÐB t§{¡{°e·l±lÑ'BÐBr:   c                ón   € \        V P                  4      R ,           \        V P                  4      ,           # )Ú )Úreprr4   r5   rK   s   &r7   Ú__repr__ÚNodeSpec.__repr__w   s#   € Ü�D—G‘G‹}˜sÕ"¤T¨$¯+©+Ó%6Õ6Ð6r:   r3   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r8   Úclassmethodr<   rB   rF   rL   rR   rW   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r7   r1   r1   U   s^   ø‡ € Ù,òð ñ1ó ð1ð ñ/ó ð/ð ñ/ó ð/ò,òC÷7ð 7r:   r1   c                  óp   € \         P                  P                  4       '       d   \        '       g   R R.# R .# )ÚcpuÚcuda)Útorchre   Úis_availabler#   © r:   r7   Úget_supported_device_typesri   {   s/   € ä Ÿ:™:×2Ñ2×4Ò4¿^»^ˆ�ˆðØRWÐQXðr:   c                ó$   € V F	  pV ! V!   K  	  R# )zz
Default evaluation function takes a torch.utils.data.Dataset or a list of
input Tensors and run the model on the dataset
Nrh   )ÚmodelÚ
calib_dataÚinps   && r7   Útest_only_eval_fnrn   �   s   € ó
 ˆÙˆsŒó r:   c                ó&  € \         P                  P                  V P                  4       RR7      p^ ^ ^ rep\	        ^
4       FË  pV P                  4        V F²  w  r‰VP                  4        V ! V4      p
V! W©4      pVP                  4        VP                  4        WKP                  4       ,          p\         P                  ! V
^4      w  r|WiP                  ^ 4      ,          pW\V	8H  P                  4       P                  4       ,          pK´  	  KÍ  	  WEV3# )z\
Default train function takes a torch.utils.data.Dataset and train the model
on the dataset
gü©ñÒMbP?©Úlr)rf   ÚoptimÚAdamÚ
parametersÚrangeÚtrainÚ	zero_gradÚbackwardÚstepÚitemÚmaxÚsizeÚsum)rk   Ú
train_dataÚloss_fnÚ	optimizerÚ
train_lossÚcorrectÚtotalÚ_Údatar5   ÚoutputÚlossÚ	predicteds   &&&          r7   Útest_only_train_fnr‰   �   sâ   € ô
 —‘× Ñ  ×!1Ñ!1Ó!3¸Ð Ó>€IØ!" A q˜€JÜ�2ŽYˆØ�‰Œã&‰LˆDØ×ÑÔ!Ù˜4“[ˆFÙ˜6Ó*ˆDØ�M‰MŒOØ�N‰NÔØŸ)™)›+Õ%ˆJÜ Ÿ9š9 V¨QÓ/‰LˆAØ—[‘[ “^Õ#ˆEØ VÑ+×0Ñ0Ó2×7Ñ7Ó9Õ9ŠGó 'ñ ð  Ð%Ð%r:   c                   óD   a € ] tR t^¤t o RtRR ltR tR	R ltR tRt	V t
R# )
ÚAverageMeterz1Computes and stores the average and current valuec                ó>   € Wn         W n        V P                  4        R # rI   )ÚnameÚfmtÚreset)r6   r�   rŽ   s   &&&r7   r8   ÚAverageMeter.__init__§   s   € ØŒ	ØŒØ�
‰
Žr:   c                ó>   € ^ V n         ^ V n        ^ V n        ^ V n        R# ©é    N)ÚvalÚavgr}   ÚcountrK   s   &r7   r�   ÚAverageMeter.reset¬   s   € ØˆŒØˆŒØˆŒØˆŽ
r:   c                óÆ   € Wn         V ;P                  W,          ,          un        V ;P                  V,          un        V P                  V P                  ,          V n        R # rI   )r”   r}   r–   r•   )r6   r”   Úns   &&&r7   ÚupdateÚAverageMeter.update²   s8   € ØŒØ�Š�C•GÕ�Ø�
Š
�a��
Ø—8‘8˜dŸj™jÕ(ˆŽr:   c                óž   € R V P                   ,           R,           V P                   ,           R,           pVP                  ! R/ V P                  B # )z{name} {valz} ({avgz})rh   )rŽ   ÚformatÚ__dict__)r6   Úfmtstrs   & r7   Ú__str__ÚAverageMeter.__str__¸   s9   € Ø §¡Õ)¨IÕ5¸¿¹Õ@À4ÕGˆØ�}Š}Ñ-˜tŸ}™}Ñ-Ð-r:   )r•   r–   rŽ   r�   r}   r”   N)z:f©é   )rY   rZ   r[   r\   r]   r8   r�   rš   r    r_   r`   ra   s   @r7   r‹   r‹   ¤   s!   ø‡ € Ù;ôò
ô)÷.ð .r:   r‹   c           	     ó,  € \         P                  ! 4       ;_uu_ 4        \        V4      pVP                  ^ 4      pV P	                  V^RR4      w  rVVP                  4       pVP                  VP                  ^R4      P                  V4      4      p. pV F]  p	VRV	 P                  R4      P                  4       P                  ^ RR7      p
VP                  V
P                  RV,          4      4       K_  	  VuuRRR4       #   + '       g   i     R# ; i)zNComputes the accuracy over the k top predictions for the specified values of kTN)Úkeepdimg      Y@éÿÿÿÿ)rf   Úno_gradr{   r|   ÚtopkÚtÚeqÚviewÚ	expand_asÚfloatr}   ÚappendÚmul_)r†   r5   r¨   ÚmaxkÚ
batch_sizer„   Úpredr‚   ÚresÚkÚ	correct_ks   &&&        r7   Úaccuracyr¶   ½   sÑ   € ä	�Š��Ü�4‹yˆØ—[‘[ “^ˆ
à—+‘+˜d A t¨TÓ2‰ˆØ�v‰v‹xˆØ—'‘'˜&Ÿ+™+ a¨Ó,×6Ñ6°tÓ<Ó=ˆàˆÛˆAØ  ˜×(Ñ(¨Ó,×2Ñ2Ó4×8Ñ8¸ÀDÐ8ÓIˆIØ�J‰J�y—~‘~ e¨jÕ&8Ó9Ö:ñ ð ÷ 
��‹ús   žCDÄD	c                 ó`  € V P                  4        \        V^R7       FŒ  w  pw  rx\        RRR7       VP                  V4      VP                  V4      r‡V ! V4      p	V! W˜4      p
VP	                  4        V
P                  4        VP                  4        \        W˜RR7       We8¼  g   K‹   R# 	  R# )r£   )ÚstartÚ.Ú )Úend)r¨   N)r£   é   )rv   Ú	enumerateÚprintÚtorw   rx   ry   r¶   )rk   Ú	criterionr€   Údata_loaderÚdeviceÚntrain_batchesÚcntÚimager5   r†   r‡   s   &&&&&&     r7   Útrain_one_epochrÆ   Î   s‘   € Ø	‡K�K„MÜ )¨+¸Q× ?Ñˆ‰_ˆeÜˆc�rÕØŸ™ Ó(¨&¯)©)°FÓ*;ˆvÙ�u“ˆÙ˜Ó(ˆØ×ÑÔØ�‰ŒØ�‰ÔÜ� fÕ-ØÖ Úñ !@ñ r:   c                 ó‚   € R \         P                  R&   R\         P                  R&   \        P                  ! RWR7       R# )Ú	localhostÚMASTER_ADDRÚ12355ÚMASTER_PORTÚgloo©ÚrankÚ
world_sizeN)ÚosÚenvironÚdistÚinit_process_grouprÍ   s   &&r7   Ú	ddp_setuprÔ   Þ   s0   € Ø +„B‡J�Jˆ}ÑØ '„B‡J�Jˆ}Ñô 	×Ò˜F¨×Er:   c                  ó0   € \         P                  ! 4        R # rI   )rÒ   Údestroy_process_grouprh   r:   r7   Úddp_cleanupr×   æ   s   € Ü×ÒÖ r:   c                 óZ  € \        W4       VP                  4        \        P                  P                  P                  W .R 7      pVP                  V 4       Tp\        P                  P                  VP                  4       RR7      p\        V\        V\        V ^4       \        4        R# ))Ú
device_idsg-Cëâ6?rp   N)rÔ   re   rf   ÚnnÚparallelÚDistributedDataParallelr¿   rr   ÚSGDrt   rÆ   rÀ   Údatasetr×   )rÎ   rÏ   ÚpreparedÚmodel_with_ddpr€   s   &&&  r7   Úrun_ddprá   ê   sy   € ÜˆdÔØ‡M�M„OÜ�x‰x× Ñ ×8Ñ8¸ÈfÐ8ÓU€HØ‡K�K�ÔØ€NÜ—‘—‘ × 9Ñ 9Ó ;À�ÓG€IÜ�N¤I¨y¼'À4ÈÔKÜ†Mr:   c                 ó2   € \        V \        4       R R7       R# )T©ÚinplaceN)r   r   )Úmodules   &r7   Úconvert_dynamicræ   õ   s   € ÜˆFÔ=Ó?È×Nr:   c                 ó   € \        W4       R # rI   )r   )rk   Úqconfig_dicts   &&r7   Úprepare_dynamicré   ù   s
   € Ü�uÖ+r:   c                 ó  € W,          pW4,          p^ ^rþ\         P                  ! VVV V3V,           4      pVVV,
          P                  4       ,          p\         P                  ! VWg\         P                  R7      pW�,          pW�,          p	VRV pV	RV p	R^pp\         P                  ! VVVV3V,           4      p\         P                  ! ^ ^
V34      pV'       Ed   RR\        V4      ,          ,           p\         P                  ! V\         P                  R7      p\         P                  ! V	\         P                  R7      pVP                  ! V!  VP                  4       VP                  ! V!  ,
          P                  4       ,          pVV,          VP                  4       ,          p\         P                  ! VVP                  4       VP                  4       ^ \         P                  R7      pM†V^ ,          VV	^ ,          ,
          P                  4       ,          pWh^ ,          ,          VP                  4       ,          p\         P                  ! VV^ ,          V	^ ,          \         P                  R7      pTTTTV
'       d   V3# R3# )r“   ©ÚscaleÚ
zero_pointÚdtypeN©rî   éûÿÿÿ)r¦   r£   r¢   )rf   Úrandintr­   Úquantize_per_tensorÚquint8ÚlenÚtensorÚreshapeÚquantize_per_channelÚdoubleÚlongÚqint8)r±   Úin_channels_per_groupÚinput_feature_map_sizeÚout_channels_per_groupÚgroupsÚkernel_sizeÚX_scaleÚX_zero_pointÚW_scaleÚW_zero_pointÚuse_biasÚuse_channelwiseÚin_channelsÚout_channelsÚX_value_minÚX_value_maxÚX_initÚXÚX_qÚW_value_minÚW_value_maxÚW_initÚb_initÚW_shapeÚW_scales_tensorÚW_zero_points_tensorÚWÚbÚW_qs   &&&&&&&&&&&&                 r7   Ú_make_conv_test_inputr  ý   s4  € ð (Õ0€KØ)Õ2€Là"# Q�+Ü�]Š]ØØàØð	
ð !õ		!ó€Fð 	�6˜LÕ(×/Ñ/Ó1Õ1€AÜ
×
#Ò
#Ø	�¼¿¹ô€Cð Õ$€GØÕ.€Là�m�|Ð$€GØ  Ð.€Lð #% a�+€[ô �]Š]ØØàØ!ð	
ð õ		ó€Fô �]Š]˜1˜b < /Ó2€Fç€Ø˜D¤3 {Ó#3Õ3Õ3ˆÜŸ,š, w´e·k±kÔBˆÜ$Ÿ|š|¨LÄÇÁÔLÐà×#Ò# WÑ-Ø�|‰|‹~Ð 4× <Ò <¸gÑ FÕF×MÑMÓOõPð 	
ð �oÕ%¨¯©«Õ6ˆÜ×(Ò(ØØ×"Ñ"Ó$Ø ×%Ñ%Ó'ØÜ—+‘+ô
‰ð �A�J˜& <°¥?Õ2×9Ñ9Ó;Õ;ˆØ˜a•jÕ  6§<¡<£>Õ1ˆÜ×'Ò'Ø�W˜Q•Z¨L¸­OÄ5Ç;Á;ô
ˆð ˆs�A�s§˜AÐ4Ð4¨tÐ4Ð4r:   c                 óÆ   € ^ ^rC\         P                  ! VVV4      pWV,
          P                  4       ,          p\         P                  ! W`V\         P                  R7      pWg3# )r“   rë   )rf   rñ   r­   rò   ró   )rì   rí   Úsizesr  r	  r
  r  r  s   &&&     r7   Ú!_make_conv_add_extra_input_tensorr  P  s\   € Ø"# Q�+Ü�]Š]ØØØó€Fð
 	˜*Õ$×+Ñ+Ó-Õ-€AÜ
×
#Ò
#Ø	 :´U·\±\ô€Cð ˆ6€Mr:   c                 óì   a a€ R o\        S \        4      '       d:   R\        P                  P                  P
                  9  d   RS n        SS n        S # \        P                  ! S 4      V V3R l4       pV# )zrQuantized operations require FBGEMM. FBGEMM is only optimized for CPUs with instruction set support AVX2 or newer.ÚfbgemmTc                  ó–   <€ R \         P                  P                  P                  9  d   \        P
                  ! S4      hS! V / VB  R# )r  N©rf   ÚbackendsÚ	quantizedÚsupported_enginesÚunittestÚSkipTest©ÚargsÚkwargsÚfnÚreasons   *,€€r7   ÚwrapperÚskipIfNoFBGEMM.<locals>.wrapperf  ó9   ø€ àœ5Ÿ>™>×3Ñ3×EÑEÔEÜ×#Ò# FÓ+Ð+á�Ð˜Ôr:   ©
rO   Útyperf   r  r   r!  Ú__unittest_skip__Ú__unittest_skip_why__Ú	functoolsÚwraps©r'  r)  r(  s   f @r7   ÚskipIfNoFBGEMMr3  ^  sg   ù€ ð B€FÜ�"”d×ÒØœ5Ÿ>™>×3Ñ3×EÑEÔEØ#'ˆBÔ Ø'-ˆBÔ$Øˆ	ä‡_‚_�RÓõ ó ð ð €Nr:   c                 óì   a a€ R o\        S \        4      '       d:   R\        P                  P                  P
                  9  d   RS n        SS n        S # \        P                  ! S 4      V V3R l4       pV# )ú%Quantized operations require QNNPACK.ÚqnnpackTc                  ó–   <€ R \         P                  P                  P                  9  d   \        P
                  ! S4      hS! V / VB  R# ©r6  Nr  r$  s   *,€€r7   r)  Ú skipIfNoQNNPACK.<locals>.wrapperx  s9   ø€ àœEŸN™N×4Ñ4×FÑFÔFÜ×#Ò# FÓ+Ð+á�Ð˜Ôr:   r,  r2  s   f @r7   ÚskipIfNoQNNPACKr:  p  sd   ù€ Ø4€FÜ�"”d×ÒØœEŸN™N×4Ñ4×FÑFÔFØ#'ˆBÔ Ø'-ˆBÔ$Øˆ	ä‡_‚_�RÓõ ó ð ð €Nr:   c                 óì   a a€ R o\        S \        4      '       d:   R\        P                  P                  P
                  9  d   RS n        SS n        S # \        P                  ! S 4      V V3R l4       pV# )r5  r6  Tc                  óö   <€ R \         P                  P                  P                  9  d   \        P
                  ! S4      h\        R 4      ;_uu_ 4        S! V / VB  RRR4       R#   + '       g   i     R# ; ir8  )rf   r  r   r!  r"  r#  r"   r$  s   *,€€r7   r)  Ú#withQNNPACKBackend.<locals>.wrapperŒ  sS   ø€ àœEŸN™N×4Ñ4×FÑFÔFÜ×#Ò# FÓ+Ð+Ü& y×1Õ1Ù�Ð˜Ò÷ 2×1×1Ò1ús   Á	A'Á'A8	r,  r2  s   f @r7   ÚwithQNNPACKBackendr>  ‚  sf   ù€ ð 5€FÜ�"”d×ÒØœEŸN™N×4Ñ4×FÑFÔFØ#'ˆBÔ Ø'-ˆBÔ$Øˆ	ä‡_‚_�RÓõ ó ð ð €Nr:   c                 óì   a a€ R o\        S \        4      '       d:   R\        P                  P                  P
                  9  d   RS n        SS n        S # \        P                  ! S 4      V V3R l4       pV# )z$Quantized operations require ONEDNN.ÚonednnTc                  ó–   <€ R \         P                  P                  P                  9  d   \        P
                  ! S4      hS! V / VB  R# )r@  Nr  r$  s   *,€€r7   r)  ÚskipIfNoONEDNN.<locals>.wrapperž  r+  r:   r,  r2  s   f @r7   ÚskipIfNoONEDNNrC  –  sd   ù€ Ø3€FÜ�"”d×ÒØœ5Ÿ>™>×3Ñ3×EÑEÔEØ#'ˆBÔ Ø'-ˆBÔ$Øˆ	ä‡_‚_�RÓõ ó ð ð €Nr:   c                 óö   a a€ R o\        S \        4      '       d?   \        P                  P                  P                  4       '       g   RS n        SS n        S # \        P                  ! S 4      V V3R l4       pV# )z*Quantized operations require BF16 support.Tc                  ó    <€ \         P                  P                  P                  4       '       g   \        P
                  ! S4      hS! V / VB  R # rI   )rf   ÚopsÚmkldnnÚ_is_mkldnn_bf16_supportedr"  r#  r$  s   *,€€r7   r)  Ú#skipIfNoONEDNNBF16.<locals>.wrapper°  s:   ø€ ä�y‰y×Ñ×9Ñ9×;Ò;Ü×#Ò# FÓ+Ð+á�Ð˜Ôr:   )
rO   r-  rf   rF  rG  rH  r.  r/  r0  r1  r2  s   f @r7   ÚskipIfNoONEDNNBF16rJ  ¨  se   ù€ Ø9€FÜ�"”d×ÒÜ�y‰y×Ñ×9Ñ9×;Ò;Ø#'ˆBÔ Ø'-ˆBÔ$Øˆ	ä‡_‚_�RÓõ ó ð ð €Nr:   c                 óì   a a€ R o\        S \        4      '       d:   R\        P                  P                  P
                  9  d   RS n        SS n        S # \        P                  ! S 4      V V3R l4       pV# )z!Quantized operations require X86.Úx86Tc                  ó–   <€ R \         P                  P                  P                  9  d   \        P
                  ! S4      hS! V / VB  R# )rL  Nr  r$  s   *,€€r7   r)  ÚskipIfNoX86.<locals>.wrapperÂ  s9   ø€ àœŸ™×0Ñ0×BÑBÔBÜ×#Ò# FÓ+Ð+á�Ð˜Ôr:   r,  r2  s   f @r7   ÚskipIfNoX86rO  º  sd   ù€ Ø0€FÜ�"”d×ÒØœŸ™×0Ñ0×BÑBÔBØ#'ˆBÔ Ø'-ˆBÔ$Øˆ	ä‡_‚_�RÓõ ó ð ð €Nr:   c                 óÐ   a a€ R o\        S \        4      '       d,   \        P                  ! 4       '       g   RS n        SS n        S # \        P                  ! S 4      V V3R l4       pV# )zdynamo doesn't support.Tc                  óz   <€ \         P                  ! 4       '       g   \        P                  ! S4      hS! V / VB  R # rI   )ÚtorchdynamoÚis_dynamo_supportedr"  r#  r$  s   *,€€r7   r)  Ú&skipIfNoDynamoSupport.<locals>.wrapperÔ  s0   ø€ ä×.Ò.×0Ò0Ü×#Ò# FÓ+Ð+á�Ð˜Ôr:   )rO   r-  rR  rS  r.  r/  r0  r1  r2  s   f @r7   ÚskipIfNoDynamoSupportrU  Ì  s[   ù€ Ø&€FÜ�"”d×ÒÜ×.Ò.×0Ò0Ø#'ˆBÔ Ø'-ˆBÔ$Øˆ	ä‡_‚_�RÓõ ó ð ð €Nr:   c                 óÐ   a a€ R o\        S \        4      '       d,   \        P                  ! 4       '       g   RS n        SS n        S # \        P                  ! S 4      V V3R l4       pV# )zinductor doesn't support.Tc                  óz   <€ \         P                  ! 4       '       g   \        P                  ! S4      hS! V / VB  R # rI   )rR  Úis_inductor_supportedr"  r#  r$  s   *,€€r7   r)  Ú(skipIfNoInductorSupport.<locals>.wrapperæ  s0   ø€ ä×0Ò0×2Ò2Ü×#Ò# FÓ+Ð+á�Ð˜Ôr:   )rO   r-  rR  rX  r.  r/  r0  r1  r2  s   f @r7   ÚskipIfNoInductorSupportrZ  Þ  s[   ù€ Ø(€FÜ�"”d×ÒÜ×0Ò0×2Ò2Ø#'ˆBÔ Ø'-ˆBÔ$Øˆ	ä‡_‚_�RÓõ ó ð ð €Nr:   zno torchvisionc                 óŽ   € V'       d    \         P                  P                  W4      # \         P                  P                  V 4      # rI   )rf   ÚjitÚtraceÚscript)rk   Útracingr…   s   &&&r7   Úget_script_moduler`  ù  s+   € ß+2Œ5�9‰9�?‰?˜5Ó'ÐO¼¿	¹	×8HÑ8HÈÓ8OÐOr:   c                óî   € \         P                  ! V P                  ^ ,          ^,           3VR7      pWR&   \        P                  ! \         P
                  ! W1R7      4      pV'       d   VRR # VR,          # )z.
Convert lengths to offsets for embedding_bag
rï   :r£   NNNr¦   )ÚnpÚzerosÚshaperf   Ú
from_numpyÚcumsum)r©   Úoffset_typeÚuse_begin_offsetÚtts   &&& r7   Úlengths_to_offsetsrj  ý  sZ   € ô 
�Š�1—7‘7˜1•: •>Ð#¨;Ô	7€BØ€r�FÜ	×	Ò	œ"Ÿ)š) BÔ:Ó	;€BßØ�#�2ˆwˆØˆb�6€Mr:   c           	      ód  € V P                  4       ^8w  d   \        RV P                  4        24      hV P                  ^ ^4      P                  4       p V^8:  d   \        RV 24      hV P                  R,          V,          ^ 8w  d#   \        RV P                  R,           RV 24      hV P                  RV4      p\        P                  ! V4      P                  4       ^ 8w  d   \        R4      hVP                  ^RR7      pVP                  ^RR7      p^V,          ^,
          p^ pWE,
          P                  RR	7      V,          p\        P                  ! V4      P                  4       ^ 8w  d   \        R
4      hWX^V^,
          ,          ,          ,           p	\        P                  ! V	4      P                  4       ^ 8w  d   \        R4      hVP                  V4      P                  V4      P                  4       P                  Wv4      p
\        P                  ! V
4      P                  4       ^ 8w  d   \        R4      hV
P!                  \        P"                  R7      P                  V P                  4      p
V
P$                  \        P$                  ! R4      8w  d<   V
R,          ^,          V
R,          ,          P!                  \        P&                  4      p
VP)                  V P                  ^ ,          R4      pV	P)                  V P                  ^ ,          R4      p	\        P*                  ! VP                  VP-                  ^ 4      VP-                  ^4      ^4      V	P                  V	P-                  ^ 4      V	P-                  ^4      ^4      .^4      P                  ^ ^4      P                  4       pW«3# )é   zexpected w.dim() == 2, got zexpected q_group_size > 1, got z:expected w.shape[-1] % q_group_size == 0, got w.shape[-1]=z, q_group_size=zto_quant contains NaN valuesT©Údimr¥   g�íµ ÷Æ°>©Úminzscales contains NaN valueszzeros contains NaN valueszout contains NaN valuesrï   rd   r¦   ©ºNNN:NNrl  ©rr  :r£   Nrl  )rn  ÚAssertionErrorÚ	transposeÚ
contiguousrd  rö   rf   Úisnanr}   ÚamaxÚaminÚclampÚsubÚdivÚroundÚclamp_r¿   Úint32rÂ   Úuint8r«   Úcatr|   )ÚwÚn_bitÚq_group_sizeÚto_quantÚmax_valÚmin_valÚmax_intÚmin_intÚscalesrc  ÚoutÚscales_and_zeross   &&&         r7   Ú_group_quantize_tensorr�  	  sâ  € Ø‡u�uƒw�!„|ÜÐ:¸1¿5¹5»7¸)ÐDÓEÐEØ	�‰�A�qÓ×$Ñ$Ó&€AØ�qÔÜÐ>¸|¸nÐMÓNÐNØ‡w�wˆr…{�\Õ! QÔ&ÜØHÈÏÉÐQSÍÈÐUdÐeqÐdrÐsó
ð 	
ð �y‰y˜˜\Ó*€HÜ‡{‚{�8Ó× Ñ Ó" aÔ'ÜÐ;Ó<Ð<à�m‰m ¨4ˆmÓ0€GØ�m‰m ¨4ˆmÓ0€GØ��h˜�l€GØ€GØÕ×&Ñ&¨4Ð&Ó0°7Õ:€FÜ‡{‚{�6Ó×ÑÓ  AÔ%ÜÐ9Ó:Ð:à  e¨a¥iÕ 0Õ1Õ1€EÜ‡{‚{�5Ó×ÑÓ 1Ô$ÜÐ8Ó9Ð9à
�,‰,�wÓ
×
#Ñ
# FÓ
+×
1Ñ
1Ó
3×
:Ñ
:¸7Ó
L€CÜ‡{‚{�3Ó×ÑÓ Ô"ÜÐ6Ó7Ð7à
�&‰&”u—{‘{ˆ&Ó
#×
+Ñ
+¨A¯G©GÓ
4€CØ
‡z�z”U—\’\ %Ó(Ô(Ø�7�|˜qÕ  3 x¥=Õ0×4Ñ4´U·[±[ÓAˆð �[‰[˜Ÿ™ � RÓ(€FØ�J‰J�q—w‘w˜q•z 2Ó&€Eä�	Š	à—‘˜vŸ{™{¨1›~¨v¯{©{¸1«~¸qÓAØ—‘˜eŸj™j¨›m¨U¯Z©Z¸«]¸AÓ>ðð ó	
÷ 
‰�1�a‹ß	‰‹ð ð Ð Ð r:   c                 óP  € V P                  ^ ^4      P                  4       p V P                  4       ^8w  d   \        RV P                  4        24      hV^8:  d   \        RV 24      hV P                  R
,          V,          ^ 8w  d#   \        RV P                  R
,           RV 24      hV P                  R
V4      pVP                  4       P                  ^RR7      p\        P                  ! VP                  4      P                  p^V^,
          ,          ^,
          pVP                  VR7      V,          p\        P                  ! V4      pVP                  \        P                  4      P                  V P                  ^ ,          R
4      pVP                  \        P                  4      P                  V P                  ^ ,          R
4      pVP                  R
^4      pVP                  R
^4      p^V,          ^,
          pVP!                  V4      P#                  R4      P                  \        P$                  4      P                  VR	7      p	V	R,          ^,          V	R,          ,          P                  \        P&                  4      p
VP)                  4       P                  4       pW«3# )r“   zExpected w.dim() == 2, got zExpected groupsize > 1, got z+Expected w.shape[-1] % groupsize == 0, got z % Trm  ro  g      !@)r{   r¦   rs  rq  )ru  rv  rn  rt  rd  rö   Úabsrx  rf   Úfinforî   Úepsrz  Ú
zeros_liker¿   Úfloat32r|  ÚaddÚint8r€  Úsqueeze)r‚  rƒ  Ú	groupsizer…  r†  r‘  rˆ  rŠ  rc  Úw_int8Ú	out_uint8rŒ  s   &&&         r7   Ú _group_quantize_tensor_symmetricrš  ?  s  € ð 	
�‰�A�qÓ×$Ñ$Ó&€AØ‡u�uƒw�!„|ÜÐ:¸1¿5¹5»7¸)ÐDÓEÐEØ�A„~ÜÐ;¸I¸;ÐGÓHÐHØ‡w�wˆr…{�YÕ !Ô#ÜÐJÈ1Ï7É7ÐSUÍ;È-ÐWZÐ[dÐZeÐfÓgÐgà�y‰y˜˜YÓ'€HØ�l‰l‹n×!Ñ! a°Ð!Ó6€GÜ
�+Š+�g—m‘mÓ
$×
(Ñ
(€CØ�E˜A•IÕ Õ"€GØ�]‰]˜sˆ]Ó# gÕ-€FÜ×Ò˜VÓ$€Eð �Y‰Y”u—}‘}Ó%×-Ñ-¨a¯g©g°a­j¸"Ó=€FØ�H‰H”U—]‘]Ó#×+Ñ+¨A¯G©G°A­J¸Ó;€EØ�^‰^˜B Ó"€FØ�M‰M˜"˜aÓ €EØ��h˜�l€GØ�\‰\˜&Ó!×%Ñ% cÓ*×-Ñ-¬e¯j©jÓ9×?Ñ?ÀGÐ?ÓL€Fð ˜Õ! QÕ&¨°­Õ8×<Ñ<¼U¿[¹[ÓI€Ià—~‘~Ó'×2Ñ2Ó4ÐàÐ&Ð&r:   c                 óÂ  € V P                   pV P                  4       p \        P                  ! \        P                  4      P
                  p\        P                  ! V ^R7      w  rg\        P                  ! V\        P                  ! V4      4      p\        P                  ! V\        P                  ! V4      4      p	VP                  p
\        P                  ! V) V	4      p	V	\        W!,
          4      ^,          ,          p\        P                  ! WµR7      P                  V P                   4      p\        P                  ! VP                  4       \        P                  V
R7      pWP!                  R4      ,          p\        P"                  ! V4      pWìP!                  R4      ,           p\        P                  ! WñV4      P                  V4      pVVP                  V4      V3# )r£   ©rn  ro  )rî   rÂ   r¦   )rî   r­   rf   r�  r“  r‘  Úaminmaxrp  r’  r{   rÂ   rz  r¿   rc  r|   Úint64Ú	unsqueezer}  )ÚxÚ	quant_minÚ	quant_maxÚtarget_dtypeÚx_dtyper‘  r‡  r†  Úmin_val_negÚmax_val_posrÂ   rŠ  Úzero_pointsÚx_divÚx_roundÚx_zpÚquants   &&&&             r7   Ú!_dynamically_quantize_per_channelr¬  a  sV  € ð �g‰g€GØ	�‰‹	€AÜ
�+Š+”e—m‘mÓ
$×
(Ñ
(€Cô —}’} Q¨AÔ.Ñ€Gô —)’)˜G¤U×%5Ò%5°gÓ%>Ó?€KÜ—)’)˜G¤U×%5Ò%5°gÓ%>Ó?€KØ×Ñ€Fô —)’)˜[˜L¨+Ó6€KØœE )Õ"7Ó8¸1Õ<Õ=€Fä�[Š[˜Ô)×,Ñ,¨Q¯W©WÓ5€FÜ—+’+˜k×.Ñ.Ó0¼¿¹ÈFÔS€Kð × Ñ  Ó$Õ$€EÜ�kŠk˜%Ó €GØ×*Ñ*¨2Ó.Õ.€DÜ�KŠK˜¨Ó3×6Ñ6°|ÓD€Eà�&—)‘)˜GÓ$ kÐ1Ð1r:   c                   ó  a a€ ] tR tRt oV 3R ltR tR tR tRR ltR t	R t
R	 tR
 tR tR tR tR tR tR tRR ltR tR tR R ltR!R ltR"R lt]'       d   V3R lR ltV3R lR ltR#R lt]P<                  3R ltRt Vt!V ;t"# )$ÚQuantizationTestCasei‚  c                ó,  <€ \         SV `  4        \        ^4       Uu. uF+  p\        P                  ! ^^\        P
                  R7      .NK-  	  upV n        \        ^4       Uu. uFR  p\        P                  ! ^^\        P
                  R7      \        P                  ! ^ ^R\        P                  R7      .NKT  	  upV n	        \        ^4       Uu. uF,  p\        P                  ! ^^^
\        P
                  R7      .NK.  	  upV n
        \        ^4       Uu. uF-  p\        P                  ! ^^^
^
\        P
                  R7      .NK/  	  upV n        \        ^4       Uu. uF.  p\        P                  ! ^^^^^\        P
                  R7      .NK0  	  upV n        \        ^4       Uu. uFS  p\        P                  ! ^^^
\        P
                  R7      \        P                  ! ^ ^R\        P                  R7      .NKU  	  upV n        \        ^4       Uu. uFT  p\        P                  ! ^^^
^
\        P
                  R7      \        P                  ! ^ ^R\        P                  R7      .NKV  	  upV n        \        ^4       Uu. uFU  p\        P                  ! ^^^^^\        P
                  R7      \        P                  ! ^ ^R\        P                  R7      .NKW  	  upV n        ^V P                  ^V P                  ^V P                  /V n        \"        P$                  \"        P&                  .V n        \"        P*                  \"        P$                  \"        P&                  .V n        R# u upi u upi u upi u upi u upi u upi u upi u upi )rl  rï   N©rl  r¢   )ÚsuperÚsetUpru   rf   Úrandr­   rl   rñ   rù   r~   Úimg_data_1dÚimg_data_2dÚimg_data_3dÚimg_data_1d_trainÚimg_data_2d_trainÚimg_data_3d_trainÚimg_data_dictr   ÚSTATICÚQATÚstatic_quant_typesÚDYNAMICÚall_quant_types)r6   r„   Ú	__class__s   & €r7   r²  ÚQuantizationTestCase.setUpƒ  sÚ  ø€ Ü‰‰ŒÜJOÐPQÌ(ÓSÉ(ÀQœEŸJšJ q¨!´5·;±;Ô?Ó@É(ÑSˆŒô ˜1”Xó
ñ
 �ô —
’
˜1˜a¤u§{¡{Ô3Ü—’˜a  D´·
±
Ô;óñ ñ
ˆŒô PUÐUVÌxÓXÉxÈ!œUŸZšZ¨¨1¨b¼¿¹ÔDÓEÉxÑXˆÔäCHÈÄ8ó
ÙCK¸aŒU�ZŠZ˜˜1˜b "¬E¯K©KÔ8Ó9Á8ñ
ˆÔô EJÈ!ÄHó
ÙDL¸qŒU�ZŠZ˜˜1˜a  A¬U¯[©[Ô9Ó:ÁHñ
ˆÔô ˜1”Xó"
ñ
 �ô —
’
˜1˜a ¬5¯;©;Ô7Ü—’˜a  D´·
±
Ô;óñ ñ"
ˆÔô ˜1”Xó"
ñ
 �ô —
’
˜1˜a  R¬u¯{©{Ô;Ü—’˜a  D´·
±
Ô;óñ ñ"
ˆÔô ˜1”Xó"
ñ
 �ô —
’
˜1˜a  A q´·±Ô<Ü—’˜a  D´·
±
Ô;óñ ñ"
ˆÔð ˆt×ÑØˆt×ÑØˆt×Ñð
ˆÔô $-×#3Ñ#3´Y·]±]Ð"CˆÔä )× 1Ñ 1´9×3CÑ3CÄYÇ]Á]ÐSˆÖùò] Tùò
ùò Yùò
ùò
ùò"
ùò"
ùò"
s3   �1M.Á#AM3Ã2M8Ä3M=Å4NÆ(ANÈANÊANc                ór   € V P                  \        VR4      4       V P                  \        VR4      4       R# )zpChecks the module does not contain child
modules for quantization preparation, e.g.
quant, dequant and observer
r«  ÚdequantN)ÚassertFalseÚhasattr©r6   rå   s   &&r7   ÚcheckNoPrepModulesÚ'QuantizationTestCase.checkNoPrepModulesµ  s.   € ð
 	×Ñœ ¨Ó1Ô2Ø×Ñœ ¨Ó3Ö4r:   c                óŒ   € V P                  \        VR4      4       VP                  4        F  pV P                  V4       K  	  R# )z*Checks the module does not contain qconfigÚqconfigN)rÄ  rÅ  ÚchildrenÚcheckNoQconfig)r6   rå   Úchilds   && r7   rÌ  Ú#QuantizationTestCase.checkNoQconfig½  s6   € à×Ñœ ¨Ó3Ô4à—_‘_Ö&ˆEØ×Ñ Ö&ó 'r:   c                ó¨   € V P                  \        VR4      4       V P                  \        VR4      4       V P                  \        VR4      4       R# )zhChecks the module contains child
modules for quantization preparation, e.g.
quant, dequant and observer
rå   r«  rÃ  N)Ú
assertTruerÅ  rÆ  s   &&r7   ÚcheckHasPrepModulesÚ(QuantizationTestCase.checkHasPrepModulesÄ  s=   € ð
 	�‰œ ¨Ó1Ô2Ø�‰œ ¨Ó0Ô1Ø�‰œ ¨	Ó2Ö3r:   c           	     óx  € Vf   \        4       pVf   / pVP                  R/ 4      pR p\        VR4      '       d×   VP                  eÉ   V! V4      '       d;   \	        V\
        P                  P                  4      '       g   \        V4      V9   g   \        V4      V9   dq   \	        V\
        P                  P                  P                  4      '       g=   V P                  \        VR4      R\        \        V4      4      ,           R,           4       \        V4      \        4       P                  4       9  dƒ   \        V4      VP                  4       9  dc   \	        V\         4      '       gK   VP#                  4        F4  p\        V4      \        P$                  J d   K"  V P'                  WbV4       K6  	  R# R# R# R# )z^Checks the module or module's leaf descendants
have observers in preparation for quantization
NÚ%float_to_observed_custom_module_classc                 óf   € ^ pV P                  4        F  w  r#VR8w  g   K  V^,          pK  	  V^ 8H  # )r“   Úactivation_post_process)Únamed_children)rå   Úsubmodule_name_countr�   r„   s   &   r7   Úis_leaf_moduleÚ;QuantizationTestCase.checkObservers.<locals>.is_leaf_moduleÜ  s>   € Ø#$Ð Ø!×0Ñ0Ö2‘�ØÐ4Ö4Ø(¨AÕ-Ò(ñ 3ð (¨1Ñ,Ð,r:   rÊ  rÖ  zmodule: z do not have observer)r    ÚgetrÅ  rÊ  rO   rf   rÚ   Ú
Sequentialr-  ÚaoÚquantizationr   rÐ  Ústrr   Úvaluesr   rË  ÚDropoutÚcheckObservers)r6   rå   Úpropagate_qconfig_listÚprepare_custom_config_dictÚ&float_to_observed_module_class_mappingrÙ  rÍ  s   &&&&   r7   râ  Ú#QuantizationTestCase.checkObserversÍ  sc  € ð "Ò)Ü%IÓ%KÐ"Ø%Ò-Ø)+Ð&Ø1K×1OÑ1OØ3°Ró2
Ð.ò
	-ô �F˜I×&Ò&Ø—‘Ò*ñ # 6×*Ò*Ü& v¬u¯x©x×/BÑ/B×CÒCÜ˜V›Ð(>Ô>ä˜“<Ð#IÔIä˜v¤u§x¡x×'<Ñ'<×'HÑ'H×IÒIà�O‰OÜ˜Ð 9Ó:ØœS¤ f£Ó.Õ.Ð1HÕHôô �‹LÔ ?Ó A× HÑ HÓ JÔJÜ�V“Ð$J×$QÑ$QÓ$SÔSÜ˜v¤|×4Ò4àŸ™Ö*�Ü˜“;¤"§*¡*Ó,ÙØ×#Ñ#ØÐ3Möó +ñ 5ñ Tñ Kr:   c                óÒ   € V P                  \        VP                  4      \        P                  4       V P                  \        VP
                  4      \        P                  4       R# )zFChecks that mod has nn.Quantize and
nn.DeQuantize submodules inserted
N)ÚassertEqualr-  r«  ÚnnqÚQuantizerÃ  Ú
DeQuantize©r6   Úmods   &&r7   ÚcheckQuantDequantÚ&QuantizationTestCase.checkQuantDequant  s=   € ð 	×Ñœ˜cŸi™i›¬#¯,©,Ô7Ø×Ñœ˜cŸk™kÓ*¬C¯N©NÖ;r:   c                óŽ   € V P                  \        VP                  4      \        P                  4       V P                  V4       R# )zŠChecks that mod has been swapped for an nnq.Linear
module, the bias is qint32, and that the module
has Quantize and DeQuantize submodules
N)rè  r-  rå   ré  ÚLinearrî  rì  s   &&r7   ÚcheckWrappedQuantizedLinearÚ0QuantizationTestCase.checkWrappedQuantizedLinear	  s/   € ð
 	×Ñœ˜cŸj™jÓ)¬3¯:©:Ô6Ø×Ñ˜sÖ#r:   c                óX   € V P                  \        V4      \        P                  4       R # rI   )rè  r-  ré  rñ  rì  s   &&r7   ÚcheckQuantizedLinearÚ)QuantizationTestCase.checkQuantizedLinear  s   € Ø×Ñœ˜c›¤C§J¡JÖ/r:   c                ó¤   € V P                  \        V4      \        P                  4       V P                  VP                  P
                  V4       R# ©úOChecks that mod has been swapped for an nnqd.Linear
module, the bias is float.
N)rè  r-  Únnqdrñ  Ú_packed_paramsrî   ©r6   rí  rî   s   &&&r7   ÚcheckDynamicQuantizedLinearÚ0QuantizationTestCase.checkDynamicQuantizedLinear  s8   € ð 	×Ñœ˜c›¤D§K¡KÔ0Ø×Ñ˜×+Ñ+×1Ñ1°5Ö9r:   c                ó¤   € V P                  \        V4      \        P                  4       V P                  VP                  P
                  V4       R# rø  )rè  r-  ÚnniqdÚ
LinearReLUrû  rî   rü  s   &&&r7   ÚcheckDynamicQuantizedLinearReluÚ4QuantizationTestCase.checkDynamicQuantizedLinearRelu  s:   € ð 	×Ñœ˜c›¤E×$4Ñ$4Ô5Ø×Ñ˜×+Ñ+×1Ñ1°5Ö9r:   c                óê  a € VP                  4       p\        P                  ! 4       p\        P                  ! WE4       VP                  ^ 4       \        P                  ! VRR7      pVP                  V4       V! V!  pV! V!  pV 3R lp	V	! Wx4       \        P                  ! 4       p\        P                  ! W4       VP                  ^ 4       \        P                  ! VRR7      p
V
! V!  pV	! Wx4       R# )r“   F)Úweights_onlyc                 ó~  <€ SP                  V ^ ,          V^ ,          4       \        V ^,          \        4      '       d_   SP                  V ^,          ^ ,          V^,          ^ ,          4       SP                  V ^,          ^,          V^,          ^,          4       R# SP                  V ^,          V^,          4       R# r’   )rè  rO   Útuple)Úref_outÚload_outr6   s   &&€r7   Úcheck_outputsÚEQuantizationTestCase.check_eager_serialization.<locals>.check_outputs.  s„   ø€ Ø×Ñ˜W Q�Z¨°!­Ô5Ü˜' !�*¤e×,Ò,Ø× Ñ  ¨¥¨A¥°¸µ¸AµÔ?Ø× Ñ  ¨¥¨A¥°¸µ¸AµÖ?à× Ñ  ¨¥¨X°a­[Ö9r:   N)Ú
state_dictÚioÚBytesIOrf   ÚsaveÚseekÚloadÚload_state_dict)r6   Ú	ref_modelÚloaded_modelr   Ú
model_dictr  Úloaded_dictr  r	  r
  Úloadeds   f&&&       r7   Úcheck_eager_serializationÚ.QuantizationTestCase.check_eager_serialization"  s¶   ø€ à×)Ñ)Ó+ˆ
Ü�JŠJ‹LˆÜ�
Š
�:Ô!Ø	�‰ˆqŒ	ä—j’j °Ô7ˆØ×$Ñ$ [Ô1Ù˜Q‘-ˆÙ Ñ#ˆõ	:ñ 	�gÔ(Ü�JŠJ‹LˆÜ�
Š
�9Ô Ø	�‰ˆqŒ	ä—’˜A¨EÔ2ˆÙ˜1‘:ˆÙ�gÖ(r:   c                óþ   € VP                  4       pVP                  4       pV P                  W$P                  4       ,          \	        4       4       V P                  W5P                  4       ,          \	        4       4       R # rI   )Ú
get_weightÚget_biasrè  ÚkeysÚset)r6   r  Úweight_keysÚ	bias_keysÚweightÚbiass   &&&&  r7   Úcheck_weight_bias_apiÚ*QuantizationTestCase.check_weight_bias_api?  sT   € Ø×%Ñ%Ó'ˆØ×!Ñ!Ó#ˆØ×Ñ˜§{¡{£}Õ4´c³eÔ<Ø×Ñ˜§Y¡Y£[Õ0´#³%Ö8r:   c                ó"  € \         P                  R\         P                  R/pV P                  \	        V4      V4       VP
                   FA  pV P                  VP                  P                  4       ^ ,          ^ ,          WC,          4       KC  	  R# )zRChecks that mod has been swapped for an nnqd.LSTM type
module, the bias is float.
Úquantized_dynamicÚquantized_fp16N)rf   rú   Úfloat16rè  r-  Ú_all_weight_valuesÚparamÚ__getstate__©r6   rí  Úreference_module_typerî   Úwt_dtype_mapÚpacked_paramss   &&&&  r7   ÚcheckDynamicQuantizedLSTMÚ.QuantizationTestCase.checkDynamicQuantizedLSTME  su   € ô
 �K‰KÐ,Ü�M‰MÐ+ð
ˆð 	×Ñœ˜c›Ð$9Ô:Ø ×3Ô3ˆMØ×ÑØ×#Ñ#×0Ñ0Ó2°1Õ5°aÕ8¸,Õ:Möó 4r:   c                ól   € V P                  \        V4      \        P                  P                  4       R # rI   )rè  r-  rf   rÚ   rñ  rì  s   &&r7   ÚcheckLinearÚ QuantizationTestCase.checkLinearS  s   € Ø×Ñœ˜c›¤E§H¡H§O¡OÖ4r:   c                óJ  € \         P                  R\         P                  R/pV P                  \	        V4      V4       \        VR4      '       dT   VP                   FA  pV P                  VP                  P                  4       ^ ,          ^ ,          WC,          4       KC  	  R# R# )rù  r&  r'  r)  N)	rf   rú   r(  rè  r-  rÅ  r)  r*  r+  r,  s   &&&&  r7   ÚcheckDynamicQuantizedModuleÚ0QuantizationTestCase.checkDynamicQuantizedModuleV  sˆ   € ô
 �K‰KÐ,Ü�M‰MÐ+ð
ˆð 	×Ñœ˜c›Ð$9Ô:Ü�3Ð,×-Ò-Ø!$×!7Ô!7�Ø× Ñ Ø!×'Ñ'×4Ñ4Ó6°qÕ9¸!Õ<¸lÕ>Qöó "8ñ .r:   c                óØ   € \         P                  P                  V4      pV P                  WW#4       \         P                  P	                  W^ ,          4      pV P                  WW#4       R# r’   )rf   r\  r^  Ú_checkScriptabler]  )r6   Úorig_modrl   Úcheck_save_loadÚscriptedÚtraceds   &&&&  r7   ÚcheckScriptableÚ$QuantizationTestCase.checkScriptablee  sN   € Ü—9‘9×#Ñ# HÓ-ˆØ×Ñ˜h°*ÔNô —‘—‘ °a­=Ó9ˆØ×Ñ˜h°
ÖLr:   c                ó*  € V P                  WV4       \        P                  ! 4       p\        P                  P                  W%4       VP                  ^ 4       \        P                  P                  V4      pV'       d   V P                  WV4       R# R# r’   )Ú"_checkModuleCorrectnessAgainstOrigr  r  rf   r\  r  r  r  )r6   r:  Ú
script_modrl   r;  ÚbufferÚ
loaded_mods   &&&&&  r7   r9  Ú%QuantizationTestCase._checkScriptablen  sf   € Ø×/Ñ/°ÀjÔQô —’“ˆÜ�	‰	�‰�zÔ*à�‰�AŒÜ—Y‘Y—^‘^ FÓ+ˆ
÷ Ø×3Ñ3°HÈ*ÖUñ r:   c                óR   € V F   pV! V!  pV! V!  pV P                  We4       K"  	  R # rI   )rè  )r6   r:  Útest_modrl   rm   Ú
ref_outputÚscripted_outputs   &&&&   r7   rA  Ú7QuantizationTestCase._checkModuleCorrectnessAgainstOrig|  s,   € ÛˆCÙ! 3™ˆJÙ&¨™nˆOØ×Ñ˜_Ö9ó r:   c
           
     ó¾  € V'       d   \        R \        V4      4       R\        \        P                  P
                  P                  4      /p
V'       d   VP                  4       pV'       d   RV	f   \        MT	/p
\        WV^ ,          4      P                  4       pV'       d   \        RVP                  4       / p/ pR	 Fo  pV'       d"   \        WºVR7      WÅ&   WÅ,          ! V4      WÕ&   K,  \        P                  ! V4      p\        VV
\        V.RVR7      WÅ&   WÅ,          ! V^ ,          !  WÕ&   Kq  	  V'       d;   \        RVR,          P                  4       \        RVR,          P                  4       V'       dZ   V P!                  VR,          VR,          4       \#        4       P%                  V4      P'                  VR,          P                  4       VR,          # )
zTesting:rº   zinput graph:TF)Údebug)rä   rL  zdebug graph:znon debug graph:)TF)r¾   rß  r   rf   r  r   ÚengineÚevalr   r`  Úgraphr   ÚcopyÚdeepcopyr   rn   rè  r/   ÚcheckÚrun)r6   rå   ÚinputsÚquantized_opr_  rL  rR  Ú	eval_modeÚdynamicrÊ  rè   rk   ÚmodelsÚoutputsÚinputs_copys   &&&&&&&&&&     r7   ÚcheckGraphModeOpÚ%QuantizationTestCase.checkGraphModeOp‚  st  € ÷ Ü�*œc &›kÔ*ØÔ/´·±×0HÑ0H×0OÑ0OÓPÐQˆçØ—[‘[“]ˆFßØ¸7º?Õ 7ÐPWÐXˆLÜ! &°6¸!µ9Ó=×BÑBÓDˆßÜ�. %§+¡+Ô.ØˆØˆÛ"ˆEßÜ 4°UÐPUÔ V�‘à!'¦¨vÓ!6�“ô #Ÿmšm¨FÓ3�Ü ,ØØ Ü%Ø �MØ!Øô!�‘ð "(¦°°qµ	Ñ!:�“ñ% #÷( Ü�. &¨¥,×"4Ñ"4Ô5ÜÐ$ f¨U¥m×&9Ñ&9Ô:çà×Ñ˜W T�]¨G°E­NÔ;ô ‹K×Ñ˜lÓ+×/Ñ/°°uµ×0CÑ0CÔDà�e�}Ðr:   c           	     ó  € / p. p\        VP                  RR7      4      pVP                  P                   F¿  pRp	VP                  R8X  g   VP                  R8X  d"   \        VP                  VP                  4      p	M@VP                  R8X  d0   \        VP                  \        WxP                  ,          4      4      p	V	f   KŽ  VP                  V	4       W•9   d   WY;;,          ^,          uu&   K»  ^WY&   KÁ  	  Ve,   V P                  W%9   R\        V4      ,           R,           4       VeØ   VP                  4        FÃ  w  r*V
^ 8w  d�   V P                  W%9   R	\        V4      ,           R
,           4       V P                  WR,          V
8H  R	\        V4      ,           R,           \        V
4      ,           R,           \        WR,          4      ,           4       K˜  V P                  W%9  R	\        V4      ,           R,           4       KÅ  	  Ve†   ^ pV F.  p	V\        V4      8X  d    R# W”V,          8X  g   K%  V^,          pK0  	  V P                  V\        V4      8H  RV P                  VRR7      ,           R,           \        V4      ,           4       R# R# )zØCheck if GraphModule contains the target node
Args:
    graph_module: the GraphModule instance we want to check
    expected_node, expected_node_occurrence, expected_node_list:
       see docs for checkGraphModeFxOp
F©Úremove_duplicateNr<   rB   rF   znode:z not found in the graph modulezCheck failed for node:z
 not foundz Expected occurrence:z Found occurrence:z! expected no occurrence but foundzCheck failed for graph:)Ú	print_strzExpected ordered list:)ÚdictÚnamed_modulesrO  Únodesr4   r1   r5   r-  r®   rÐ  rß  Úitemsrô   ÚprintGraphModule)r6   Úgraph_moduleÚexpected_nodeÚexpected_node_occurrenceÚexpected_node_listÚnodes_in_graphÚ	node_listÚmodulesÚnoder™   Ú
occurrenceÚ	cur_indexs   &&&&&       r7   ÚcheckGraphModuleNodesÚ*QuantizationTestCase.checkGraphModuleNodes¼  sR  € ð ˆØˆ	Ü�|×1Ñ1À5Ð1ÓIÓJˆØ ×&Ñ&×,Ô,ˆDØˆAØ�w‰w˜/Ô)¨T¯W©W¸Ô-EÜ˜TŸW™W d§k¡kÓ2‘Ø—‘˜MÔ)Ü˜TŸW™W¤d¨7·;±;Õ+?Ó&@ÓA�àŒ}Ø× Ñ  Ô#ØÔ&Ø"×%¨Õ*Õ%à()�NÓ%ñ -ð Ò$Ø�O‰OØÑ/Øœ#˜mÓ,Õ,Ð/OÕOôð
 $Ò/Ø-E×-KÑ-KÖ-MÑ)�Ø ”?Ø—O‘OØ%Ñ7Ø0´3°}Ó3EÕEÈÕTôð —O‘OØ&Õ5¸ÑCØ0Ü˜mÓ,õ-à1õ2ô ˜j›/õ*ð /õ	/ô
 ˜nÕ;Ó<õ=öð —O‘OØ%Ñ;Ø0Ü˜mÓ,õ-à=õ>öñ! .Nð. Ò)ØˆIÛ�Ø¤Ð$6Ó 7Ô7ÚØ¨9Õ5Ö5Ø •N’Iñ	 ð
 �O‰OØœSÐ!3Ó4Ñ4Ø)Ø×'Ñ'¨ÀÐ'ÓFõGà*õ+ô Ð(Ó)õ*öñ *r:   c                ó  € \        VP                  R R7      4      p. pVP                  P                   F­  pRP	                  \        \        VP                  VP                  VP                  VP                  VP                  .4      4      pVP                  R8X  d3   VR\        \        W5P                  ,          4      4      ,           ,          pVP                  V4       K¯  	  RP	                  V4      pV'       d   \        V4       V# )Fr^  rU   rF   z module type: Ú
)ra  rb  rO  rc  ÚjoinÚmaprV   r4   r�   r5   r%  r&  r-  r®   r¾   )r6   rf  r`  rl  Ú
node_infosr™   Ú	node_infoÚstr_to_prints   &&&     r7   re  Ú%QuantizationTestCase.printGraphModule  sÅ   € Ü�|×1Ñ1À5Ð1ÓIÓJˆØˆ
Ø×#Ñ#×)Ô)ˆAØŸ™¤¤T¨A¯D©D°!·&±&¸!¿(¹(ÀAÇFÁFÈAÏHÉHÐ+UÓ!VÓWˆIØ�t‰t�}Ô$ØÐ-´´T¸'Ç(Á(Õ:KÓ5LÓ0MÕMÕM�	Ø×Ñ˜iÖ(ñ	 *ð
 —y‘y Ó,ˆßÜ�,ÔØÐr:   c          
      óº   <€ V ^8„  d   QhRS[ S[S[S[S[3,          3,          RS[ S[S[S[S[S[3,          S[S[S[3,          3,          3,          RS[RS[RR/# )rl  Úmatched_subgraph_pairsÚexpected_typesÚgm_aÚgm_bÚreturnN)ra  rß  r  r&   r.   r+   )r�   rb   s   "€r7   Ú__annotate__Ú!QuantizationTestCase.__annotate__  s|   ø€ ÷ 9	ñ 9	á$(©©e±JÁ
Ð4JÕ.KÐ)KÕ$Lð9	ñ !Ù‘U™5¡©8Ð!3Õ4±e¹HÁhÐ<NÕ6OÐOÕPÐPõð9	ñ ð9	ñ ð9	ð ñ9	r:   c                ó  € R R lpV P                  \        V4      \        V4      8H  R\        V4       R\        V4       24       VP                  4        F°  w  rgVw  r‰Vw  r«V	w  rÍW,          w  rïV! VP                  V4      pV! VP                  V4      pV! VP                  V4      pV! VP                  V4      pV
VJ ;'       d    VVJ ;'       d    VVJ ;'       d    VVJ pV P                  VRV RW«WÍ3 RVVVV3 24       K²  	  R# )	a{  
Verifies that the types specified in expected_types match
the underlying objects pointed to by the nodes in matched_subgraph_pairs.

An example successful test case:

  matched_subgraph_pairs = {'x0': (graph_a_conv_0_node, graph_b_conv_0_node)}
  expected_types = {'x0': (nn.Conv2d, nnq.Conv2d)}

The function tests for key equivalence, and verifies types with
instance checks.
c                óR   € V ^8„  d   QhR\         R\        R\        \        ,          /# )rl  rm  Úgmr  )r,   r+   r.   rß  )r�   s   "r7   r€  ÚRQuantizationTestCase.assert_types_for_matched_subgraph_pairs.<locals>.__annotate__,  s(   € ÷ 	'ñ 	'Üð	'Ü +ð	'äœC•ñ	'r:   c                 óÐ   € V P                   R 8X  d!   \        WP                  4      p\        V4      # V P                   R9  d   \	        RV P                   : 24      hV P                  # )rF   z:Expected node.op in ('call_function', 'call_method'), got )r<   rB   )r4   Úgetattrr5   r-  rt  )rm  r„  rí  s   && r7   Ú_get_underlying_op_typeÚ]QuantizationTestCase.assert_types_for_matched_subgraph_pairs.<locals>._get_underlying_op_type,  sZ   € ð —7‘7˜mÔ+Ü! "§k¡kÓ2�CÜ ›9Ð$à—w‘wÐ&FÔFÜ,Ð/iÐjn×jqÑjqÑitÐ-uÓvÐvØŸ;™;Ð&r:   z-Expected length of results to match, but got ú and zType mismatch at z: expected z, got N)rÐ  rô   rd  Ú
start_nodeÚend_node)r6   r{  r|  r}  r~  rˆ  r´   ÚvÚexpected_types_aÚexpected_types_bÚexp_type_start_aÚexp_type_end_aÚexp_type_start_bÚexp_type_end_bÚ
subgraph_aÚ
subgraph_bÚact_type_start_aÚact_type_start_bÚact_type_end_aÚact_type_end_bÚtypes_matchs   &&&&&                r7   Ú'assert_types_for_matched_subgraph_pairsÚ<QuantizationTestCase.assert_types_for_matched_subgraph_pairs  s[  € õ,	'ð �O‰OÜÐ*Ó+¬s°>Ó/BÑBØ?ÄÐDZÓ@[Ð?\Ð\aÔbeÐftÓbuÐavÐwôð '×,Ñ,Ö.‘�Ø56Ñ2Ð Ø3CÑ0Ð Ø3CÑ0Ð Ø)?Õ)BÑ&�
á#:¸:×;PÑ;PÐRVÓ#WÐ Ù#:¸:×;PÑ;PÐRVÓ#WÐ Ù!8¸×9LÑ9LÈdÓ!S�Ù!8¸×9LÑ9LÈdÓ!S�à%Ð)9Ð9÷ ;ð ;Ø'¨>Ð9÷;ð ;à)Ð-=Ð=÷;ð ;ð (¨>Ð9ð	 ð —‘ØØ'¨ s¨+Ð7GÐYiÐ6zÐ5{ð |Ø,¨nÐ>NÐP^Ð_Ð`ðböó! /r:   c                óf   <€ V ^8„  d   QhRS[ S[S[ S[S[ S[S[3,          3,          3,          RR/# )rl  Úact_compare_dictr  N)ra  rß  r-   )r�   rb   s   "€r7   r€  r�  Q  sC   ø€ ÷ `	Qñ `	Qá"¡3©©S±$±s¹C°xµ.Ð-@Õ(AÐ#AÕBð`	Qð ñ`	Qr:   c                ó
  € VP                  4        EF÷  w  r#VP                  4        EFÜ  w  rEV P                  \        V4      ^8H  RV R24       VP                  4       w  rg\	        \        WV,          4      4       EFƒ  pWV,          V,          p	WW,          V,          p
V P                  V	R,          V	R,          8H  RV RV RV R24       V P                  \        V	R,          4      \        V
R,          4      8H  RV RV RV R24       V\
        P                  P                  8H  ;'       d!    R	V	R
,          9   ;'       g    R	V
R
,          9   pV'       Egâ   \	        \        V	R,          4      4       EFÁ  pV	R,          V,          pV
R,          V,          p\        V\        P                  4      '       dA   V P                  VP                  VP                  8H  RV RV RV R2RV R2,           4       K„  \        V\        4      '       dS   V^ ,          pV^ ,          pV P                  VP                  VP                  8H  RV RV RV R2RV R2,           4       Kì  \        V\        4      '       g   \        R\        V4       24      h\        V4      ^8w  d   \        R\        V4       24      h\        V^,          4      ^8w  d   \        R\        V^,          4       24      hV^ ,          P                  V^ ,          P                  8w  d4   \        RV^ ,          P                   RV^ ,          P                   24      hV^,          ^ ,          P                  V^,          ^ ,          P                  8w  dB   \        RV^,          ^ ,          P                   RV^,          ^ ,          P                   24      hV^,          ^,          P                  V^,          ^,          P                  8w  g   EKƒ  \        RV^,          ^,          P                   RV^,          ^,          P                   24      h	  V	R,          pV
R,          pV	R,          pV
R,          pV	R,          \
        P                   P                  8X  d,   V P                  VV8H  4       V P                  VV8H  4       EK2  V	R,          \
        P"                  P                  8X  g   EK[  V P                  VV8g  4       V P                  VV8g  4       EK†  	  EKß  	  EKú  	  R# )zÑ
Verifies that the act_compare_dict (output of Numeric Suite APIs) is valid:
1. for each layer, results are recorded for two models
2. number of seen tensors match
3. shapes of each pair of seen tensors match
zLayer z) does not have exactly two model results.r-  z, rŠ  z do not have the same type.rà  z- do not have the same number of seen Tensors.Úconv1dÚprev_node_target_typerU   zhave a shape mismatch at idx r¹   zunhandled type z!Expected len(values_0) == 2, got z$Expected len(values_0[1]) == 2, got z5Expected values_0[0].shape == values_1[0].shape, got z != z;Expected values_0[1][0].shape == values_1[1][0].shape, got z;Expected values_0[1][1].shape == values_1[1][1].shape, got Úref_node_nameÚprev_node_nameN)rd  rÐ  rô   r  ru   r%   ÚWEIGHTÚvaluerO   rf   ÚTensorrd  Úlistr  rt  r-  ÚNODE_OUTPUTÚ
NODE_INPUT)r6   rž  Ú
layer_nameÚresult_type_to_dataÚresult_typeÚ
layer_dataÚmodel_name_0Úmodel_name_1Úres_idxÚlayer_data_0Úlayer_data_1Úis_weight_functional_conv1dÚidxÚvalues_0Úvalues_1Úref_node_name_0Úref_node_name_1Úprev_node_name_0Úprev_node_name_1s   &&                 r7   Úassert_ns_compare_dict_validÚ1QuantizationTestCase.assert_ns_compare_dict_validQ  sÍ  € ð 4D×3IÑ3I×3KÑ/�
Ø/B×/HÑ/H×/JÑ+�KØ—O‘OÜ˜J›¨1Ñ,Ø   Ð,UÐVôð 2<·±Ó1BÑ.�LÜ#(¬¨ZÕ-EÓ)F×#G˜Ø'1Õ'?ÀÕ'H˜Ø'1Õ'?ÀÕ'H˜ØŸ™Ø(¨Õ0°LÀÕ4HÑHØ$ Z L°°<°.ÀÀlÀ^ÐSnÐoôð
 Ÿ™Ü ¨XÕ 6Ó7¼3¸|ÈHÕ?UÓ;VÑVØ$ Z L°°<°.ÀÀlÀ^ð  TAð  Bôð (Ô+C×+JÑ+J×+PÑ+PÑP÷ ð à (¨LÐ9PÕ,QÑ Q÷ !Uð !UØ#+¨|Ð<SÕ/TÑ#Tð	 4÷  ;Ð:Ü',¬S°¸hÕ1GÓ-H×'I Ø+7¸Õ+AÀ#Õ+F Ø+7¸Õ+AÀ#Õ+F Ü#-¨h¼¿¹×#EÒ#EØ$(§O¡OØ(0¯©¸(¿.¹.Ñ(HØ*0°°¸B¸|¸nÈEÐR^ÐQ_Ð_`Ð(aØ,IÈ#ÈÈaÐ*Põ)Qö%&ô
 &0°¼$×%?Ò%?Ø/7¸­{ HØ/7¸­{ HØ$(§O¡OØ(0¯©¸(¿.¹.Ñ(HØ*0°°¸B¸|¸nÈEÐR^ÐQ_Ð_`Ð(aØ,IÈ#ÈÈaÐ*Põ)Qö%&ô ,6°hÄ×+FÒ+FÜ.<¸ÌtÐT\Ë~ÐN^Ð=_Ó.`Ð(`Ü'*¨8£}¸Ô'9Ü.<Ð?`ÔadÐemÓanÐ`oÐ=pÓ.qÐ(qÜ'*¨8°A­;Ó'7¸1Ô'<Ü.<Ð?cÔdgÐhpÐqrÕhsÓdtÐcuÐ=vÓ.wÐ(wØ'/°¥{×'8Ñ'8¸HÀQ½K×<MÑ<MÔ'MÜ.<ð/3Ø3;¸Aµ;×3DÑ3DÐ2EÀTÈ(ÐSTÍ+×J[ÑJ[ÐI\ð-^ó/*ð )*ð (0°¥{°1¥~×';Ñ';¸xÈ½{È1½~×?SÑ?SÔ'SÜ.<ð/3Ø3;¸Aµ;¸qµ>×3GÑ3GÐ2HÈÈXÐVWÍ[ÐYZÍ^×MaÑMaÐLbð-dó/*ð )*ð (0°¥{°1¥~×';Ñ';¸xÈ½{È1½~×?SÑ?S×'SÜ.<ð/3Ø3;¸Aµ;¸qµ>×3GÑ3GÐ2HÈÈXÐVWÍ[ÐYZÍ^×MaÑMaÐLbð-dó/*ð )*ñG (JðR +7°Õ*G˜Ø*6°Õ*G˜Ø+7Ð8HÕ+IÐ(Ø+7Ð8HÕ+IÐ(à(¨Õ0Ü7×CÑC×IÑIôJð !ŸO™O¨OÐ?OÑ,OÔPØ ŸO™O¨OÐ?OÑ,O×Pà(¨Õ0Ü7×BÑB×HÑH÷Ið !ŸO™O¨OÐ?OÑ,OÔPØ ŸO™O¨OÐ?OÑ,O×Pô_ $Hô 0Kó 4Lr:   c           
     ó²  € \        V4      \        J d
   V^ ,          pV\        P                  8X  d?   \	        \
        P                  P                  P                  4      pVP                  4        M‚V\        P                  8X  d?   \        \
        P                  P                  P                  4      pVP                  4        M/\        p\        4       P                  V4      pVP                  4        V\        P                  8X  d   \         pM\"        pV	eU   \        V	4      \        \$        39  d   \'        R4      h\)        V	\        4      '       d   T	pM\        P*                  ! V	4      pV! VVVVVR7      pV\        P,                  8w  d   V! V!   V'       d9   \/        4        \/        RV4       \/        RV4       \/        4        \/        RV4       V P1                  VV
VV4       \2        P4                  ! V4      p\7        \2        P4                  ! V4      4      p\9        \2        P4                  ! V4      4      pV! V!  pV! V!  p\2        P4                  ! V4      p\2        P4                  ! V4      pV'       d   TMTpV'       d2   \/        4        \/        RV4       V P;                  V4       \/        4        V P1                  VVVV4       RVRVR	VR
VRV/# )aŒ  Quantizes model with graph mode quantization on fx and check if the
quantized model contains the quantized_node

Args:
    model: floating point torch.nn.Module
    inputs: one positional sample input arguments for model
    expected_node: NodeSpec
        e.g. NodeSpec.call_function(torch.quantize_per_tensor)
    expected_node_occurrence: a dict from NodeSpec to
        expected number of occurrences (int)
        e.g. {NodeSpec.call_function(torch.quantize_per_tensor) : 1,
                NodeSpec.call_method('dequantize'): 1}
    expected_node_list: a list of NodeSpec, used to check the order
        of the occurrence of Node
        e.g. [NodeSpec.call_function(torch.quantize_per_tensor),
                NodeSpec.call_module(nnq.Conv2d),
                NodeSpec.call_function(F.hardtanh_),
                NodeSpec.call_method('dequantize')]
    is_reference: if True, enables reference mode
    print_debug_info: if True, prints debug info
    custom_qconfig_dict: overrides default qconfig_dict
    prepare_expected_node: same as expected_node, but for prepare
    prepare_expected_node_occurrence: same as
        expected_node_occurrence, but for prepare
    prepare_expected_node_list: same as expected_node_list, but
        for prepare

Returns:
    A dictionary with the following structure:
   {
       "prepared": ...,  # the prepared model
       "quantized": ...,  # the quantized non-reference model
       "quantized_reference": ...,  # the quantized reference model
       "result": ...,  # the result for either quantized or
                       # quantized_reference model depending on the
                       # is_reference argument
   }
z8custom_qconfig_dict should be a QConfigMapping or a dict)Úexample_inputsÚprepare_custom_configÚbackend_configzquant type:
zoriginal model:
zprepared model:
zquantized model:
rß   r   Úquantized_referenceÚquantized_outputÚquantized_reference_output)r-  r§  r   r¼  r   rf   r  r   rM  rv   r»  r   rN  r   r   Ú
set_globalr*   r)   ra  rt  rO   Ú	from_dictr¾  r¾   rp  rP  rQ  r'   r(   re  )r6   rk   rT  Ú
quant_typerg  rh  ri  Úis_referenceÚprint_debug_infoÚcustom_qconfig_dictÚprepare_expected_nodeÚ prepare_expected_node_occurrenceÚprepare_expected_node_listr¿  rÀ  Úqconfig_mappingrÊ  Úpreparerß   Úprepared_copyÚqgraphÚqgraph_referenceÚresultÚresult_referenceÚqgraph_copyÚqgraph_reference_copyÚqgraph_to_checks   &&&&&&&&&&&&&&&            r7   ÚcheckGraphModeFxOpÚ'QuantizationTestCase.checkGraphModeFxOp³  sX  € ôp �F‹|œtÓ#Ø ��àœYŸ]™]Ô*Ü"AÜ—N‘N×,Ñ,×3Ñ3ó#�ð —‘•Øœy×/Ñ/Ô/Ü"=Ü—N‘N×,Ñ,×3Ñ3ó#�ð —
‘
•ä1�Ü"0Ó"2×"=Ñ"=¸gÓ"F�Ø—
‘
”àœYŸ]™]Ô*Ü(‘ä$�ð #Ò.ÜÐ+Ó,´^ÄTÐ4JÔJÜ(Ð)cÓdÐdÜÐ1´>×BÒBØ&9‘Oä&4×&>Ò&>Ð?RÓ&S�OÙØØØ%Ø&;Ø-ôˆHð œY×.Ñ.Ô.Ù˜&Ò!çÜ”Ü�o zÔ2ÜÐ)¨5Ô1Ü”ÜÐ)¨8Ô4à×&Ñ&ØØ%Ø0Ø*ô	ô !ŸMšM¨(Ó3ˆMÜ¤§¢¨hÓ 7Ó8ˆFÜ6´t·}²}ÀXÓ7NÓOÐÙ˜V‘_ˆFÙ/°Ñ8ÐÜŸ-š-¨Ó/ˆKÜ$(§M¢MÐ2BÓ$CÐ!ç2>Ñ.ÀFˆOßÜ”ÜÐ*¨OÔ<Ø×%Ñ% oÔ6Ü”Ø×&Ñ&ØØØ(Ø"ô	ð ˜MØ˜[Ø%Ð'<Ø" FØ,Ð.>ðð r:   c	                ó  € V'       d   WE.p	MV.p	VP                  4       p
\        P                  ! 4       p\        P                  ! W«4       VP                  ^ 4       \        P                  ! V4      p\        P                  P                  P                  pV
 F£  p\        W®,          \        P                  P                  4      '       g   K5  \        WÎ,          \        P                  P                  4      '       g   \        RV: R24      hV! W®,          4      pV! WÎ,          4      pV P                  VV4       K¥  	  V'       d   \        P                   ! VVRRVR7      pM\        P"                  ! W#VR7      pV P%                  VVV	4       VP'                  V4       V P                  V! VP(                  P*                  4      V! VP(                  P*                  4      4       V P-                  W.RR7       V'       d&   \        P.                  P!                  VVRRRR	7      pM \        P.                  P#                  W#R
7      pV'       d>   \0        P2                  ! V\        P4                  ^ R7      p\7        \8        VR7      Vn        \=        V4       V! V	!   V'       d#   \        P                   P?                  V4      pRpM!\        P"                  P?                  V4      pRpV! V	!   V PA                  V\C        V4      9   4       R# )r“   zExpected loaded_dict[z] to be ScriptObjectTr}   )Únum_embeddingsÚembedding_dimÚinclude_last_offsetÚmoderî   )rÚ  rÛ  rî   )r;  F©rÚ  rÛ  rÜ  Úscale_grad_by_freqrÝ  ©rÚ  rÛ  )rî   ÚqschemeÚch_axis©Ú
activationr!  ÚQuantizedEmbeddingBagÚQuantizedEmbeddingN)"r  r  r  rf   r  r  r  rF  r   Úembedding_bag_unpackrO   Ú_CÚScriptObjectrt  rè  ré  ÚEmbeddingBagÚ	Embeddingr  r  rû  Ú_packed_weightr>  rÚ   r   Ú	with_argsÚ per_channel_affine_float_qparamsr   r   rÊ  ré   Ú
from_floatrÐ  rß  )r6   ÚqembrÚ  rÛ  ÚindicesÚoffsetsÚset_qconfigÚ
is_emb_bagrî   rT  Úemb_dictr  r  Úembedding_unpackÚkeyÚ
emb_weightÚloaded_weightÚloaded_qembÚfloat_embeddingÚfloat_qparams_observerÚq_embeddingbagÚexpected_names   &&&&&&&&&             r7   ÚcheckEmbeddingSerializationÚ0QuantizationTestCase.checkEmbeddingSerialization>  sw  € ÷ ØÐ'‰Fà�YˆFØ—?‘?Ó$ˆÜ�JŠJ‹LˆÜ�
Š
�8ÔØ	�‰ˆqŒ	Ü—j’j “mˆÜ Ÿ9™9×.Ñ.×CÑCÐãˆCÜ˜(�-¬¯©×)>Ñ)>×?Ô?Ü! +Õ"2´E·H±H×4IÑ4I×JÒJÜ(Ð+@ÀÁÐG[Ð)\Ó]Ð]Ù-¨h­mÓ<�
Ù 0°Õ1AÓ B�Ø× Ñ  ¨]Ö;ñ ÷ Ü×*Ò*Ø-Ø+Ø$(ØØô‰Kô Ÿ-š-Ø-ÐRWôˆKð 	×&Ñ& t¨[¸&ÔAà×#Ñ# KÔ0Ø×ÑÙ˜T×0Ñ0×?Ñ?Ó@Ù˜[×7Ñ7×FÑFÓGô	
ð 	×Ñ˜T 8¸TÐÔB÷ Ü#Ÿh™h×3Ñ3Ø-Ø+Ø$(Ø#(Øð 4ó ‰Oô $Ÿh™h×0Ñ0Ø-ð 1ó ˆO÷ Ü%=×%GÒ%GØ¤U×%KÑ%KÐUVô&Ð"ô '.Ü9ÐBXô'ˆOÔ#ô 	˜Ô(á˜Ò ßÜ ×-Ñ-×8Ñ8¸ÓIˆNØ3‰Mä Ÿ]™]×5Ñ5°oÓFˆNØ0ˆMá˜Òà�‰˜¬¨^Ó)<Ñ<Ö=r:   )r¿  rl   r´  r·  rµ  r¸  r¶  r¹  rº  r½  r~   ©NN)F)FFTTFN)NNN©T)NNNFFNNNNNN)#rY   rZ   r[   r\   r²  rÇ  rÌ  rÑ  râ  rî  rò  rõ  rý  r  r  r#  r0  r3  r6  r>  r9  rA  r[  rp  re  ÚHAS_FXr›  r»  r×  rf   ró   rÿ  r_   r`   Ú__classcell__©rÀ  rb   s   @@r7   r®  r®  ‚  s±   ù‡ € õ0Tòd5ò'ò4ô3òj<ò$ò0ò:ò:ò)ò:9òò5òôMòVò:ô8ôtIôV÷ ÷9	ð 9	÷v`	Qð `	QôDI	ðh �l‰l÷Y>ô Y>r:   r®  c                   óD   a € ] tR tRt o V 3R lR ltV 3R lR ltRtV tR# )ÚQuantizationLiteTestCaseiš  c                óX   <€ V ^8„  d   QhRS[ S[P                  P                  ,          /# )rl  Úmodel_class)r-  rf   rÚ   ÚModule)r�   rb   s   "€r7   r€  Ú%QuantizationLiteTestCase.__annotate__›  s!   ø€ ÷ 	ñ 	±4¹¿¹¿¹Õ3Hñ 	r:   c                ó  € R p\        V4      ;_uu_ 4        \        P                  P                  P	                  V4      pV! R/ VB p\        V\        V P                  .4      pRRR4       V#   + '       g   i     X# ; i)r6  Nrh   )r"   rf   rÝ  rÞ  r   r   rn   rl   )r6   r	  r&  ÚqenginerÊ  rk   s   &&,   r7   Ú_create_quantized_modelÚ0QuantizationLiteTestCase._create_quantized_model›  sk   € àˆÜ& w×/Õ/ä—h‘h×+Ñ+×?Ñ?ÀÓHˆGÙÑ) &Ñ)ˆEÜ˜UÔ$5¸¿¹Ð7HÓIˆE÷	 0ð ˆ÷ 0Ö/ð ˆús   –AA.Á.A?	c                ób   <€ V ^8„  d   QhRS[ P                  P                  RS[ P                  /# )rl  rk   Úinput)rf   rÚ   r
  r¦  )r�   rb   s   "€r7   r€  r  ¦  s'   ø€ ÷ &ñ &±·±·±ð &ÉÏÉñ &r:   c                óÄ  € R p\        V4      ;_uu_ 4        \        P                  P                  V4      pV! V4      p^p\	        ^V^,           4       FÌ  p \
        P                  ! VP                  4       4      pVP                  ^ 4       \        V4      p	V	! V4      p
\        P                  P                  WZ4       V	P                  V4      p\        P                  P                  W[4       V	P                  RV4      p\        P                  P                  W\4        M	  RRR4       R#   \         d   pYv8X  d   Th Rp?Kó  Rp?ii ; i  + '       g   i     R# ; i)r6  ÚforwardN)r"   rf   r\  r^  ru   r  r  Ú$_save_to_buffer_for_lite_interpreterr  r!   ÚtestingÚassert_closer  Ú
run_methodrt  )r6   rk   r  r  Úscript_moduleÚscript_module_resultÚ	max_retryÚretryrC  Úmobile_moduleÚmobile_module_resultÚmobile_module_forward_resultÚmobile_module_run_method_resultÚes   &&&           r7   Ú_compare_script_and_mobileÚ3QuantizationLiteTestCase._compare_script_and_mobile¦  s3  € àˆÜ& w×/Õ/Ü!ŸI™I×,Ñ,¨UÓ3ˆMÙ#0°Ó#7Ð àˆIÜ˜q )¨a¥-Ö0�ð!ÜŸZšZØ%×JÑJÓLó�Fð —K‘K ”NÜ$>¸vÓ$F�Má+8¸Ó+?Ð(ä—M‘M×.Ñ.Ø,ôð 4A×3HÑ3HÈÓ3OÐ0Ü—M‘M×.Ñ.Ø,ôð 7D×6NÑ6NØ! 5ó7Ð3ô —M‘M×.Ñ.Ø,ôñ ñ= 1÷ 0Ñ/øô< &ô !ØÔ)Ø˜å ûð	!ú÷= 0×/Ð/ús7   –A EÁCD-ÄEÄ-E	Ä8E	Å EÅE	ÅEÅE	rh   N)rY   rZ   r[   r\   r  r!  r_   r`   ra   s   @r7   r  r  š  s   ø‡ € ÷	ð 	÷&ö &r:   r  c                   óV   a a€ ] tR tRt oV3R lV 3R lltR tV3R lR ltRtVtV ;t	# )ÚSingleLayerLinearModeliÒ  c                ó   <€ V ^8„  d   QhRR/# ©rl  r  Nrh   )r�   rb   s   "€r7   r€  Ú#SingleLayerLinearModel.__annotate__Ó  s   ø€ ÷ ?ñ ?˜$ñ ?r:   c                óª   <€ \         SV `  4        \        P                  P	                  ^^4      P                  \        P                  R7      V n        R# ©r¼   rï   N)r±  r8   rf   rÚ   rñ  r¿   r­   Úfc1©r6   rÀ  s   &€r7   r8   ÚSingleLayerLinearModel.__init__Ó  s6   ø€ Ü‰ÑÔÜ—8‘8—?‘? 1 aÓ(×+Ñ+´%·+±+Ð+Ó>ˆŽr:   c                ó(   € V P                  V4      pV# rI   ©r*  ©r6   r   s   &&r7   r  ÚSingleLayerLinearModel.forward×  ó   € Ø�H‰H�Q‹KˆØˆr:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# ©rl  r  .©r  r-   )r�   rb   s   "€r7   r€  r'  Û  ó   ø€ ÷ #ñ #¡E©#¨s¨(¥Oñ #r:   c                ó2   € \         P                  ! ^^4      3# r¢   ©rf   r³  rK   s   &r7   Úget_example_inputsÚ)SingleLayerLinearModel.get_example_inputsÛ  ó   € Ü—
’
˜1˜aÓ Ð"Ð"r:   r.  ©
rY   rZ   r[   r\   r8   r  r8  r_   r`   r  r  s   @@r7   r$  r$  Ò  s#   ù‡ € ÷?ó ?ò÷#÷ #ð #r:   r$  c                   óN   a a€ ] tR tRt oRV 3R lltR tV3R lR ltRtVtV ;t	# )ÚAnnotatedSingleLayerLinearModeliß  c                ó  <€ \         SV `  4        \        P                  P                  P                  V4      V n        \        \        P                  P                  ^^4      P                  \        P                  R7      4      V n        R# r)  )r±  r8   rf   rÝ  rÞ  r   rÊ  r   rÚ   rñ  r¿   r­   r*  ©r6   r  rÀ  s   &&€r7   r8   Ú(AnnotatedSingleLayerLinearModel.__init__à  sW   ø€ Ü‰ÑÔÜ—x‘x×,Ñ,×@Ñ@ÀÓIˆŒÜ¤§¡§¡°°1Ó 5× 8Ñ 8¼u¿{¹{Ð 8Ó KÓLˆŽr:   c                ó(   € V P                  V4      pV# rI   r.  r/  s   &&r7   r  Ú'AnnotatedSingleLayerLinearModel.forwardå  r1  r:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  Ú,AnnotatedSingleLayerLinearModel.__annotate__é  r5  r:   c                ó2   € \         P                  ! ^^4      3# r¢   r7  rK   s   &r7   r8  Ú2AnnotatedSingleLayerLinearModel.get_example_inputsé  r:  r:   ©r*  rÊ  ©r  r;  r  s   @@r7   r=  r=  ß  s   ù‡ € ÷Mò
÷#÷ #ð #r:   r=  c                   óN   a a€ ] tR tRt oRV 3R lltR tV3R lR ltRtVtV ;t	# )ÚSingleLayerLinearDynamicModelií  c                ó  <€ \         SV `  4        \        P                  P                  P                  V4      V n        \        P                  P                  ^^4      P                  \        P                  R7      V n        R# r)  )r±  r8   rf   rÝ  rÞ  r   rÊ  rÚ   rñ  r¿   r­   r*  r?  s   &&€r7   r8   Ú&SingleLayerLinearDynamicModel.__init__î  sR   ø€ Ü‰ÑÔÜ—x‘x×,Ñ,×@Ñ@ÀÓIˆŒÜ—8‘8—?‘? 1 aÓ(×+Ñ+´%·+±+Ð+Ó>ˆŽr:   c                ó(   € V P                  V4      pV# rI   r.  r/  s   &&r7   r  Ú%SingleLayerLinearDynamicModel.forwardó  r1  r:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  Ú*SingleLayerLinearDynamicModel.__annotate__÷  r5  r:   c                ó2   € \         P                  ! ^^4      3# r¢   r7  rK   s   &r7   r8  Ú0SingleLayerLinearDynamicModel.get_example_inputs÷  r:  r:   rG  rH  r;  r  s   @@r7   rJ  rJ  í  s   ù‡ € ÷?ò
÷#÷ #ð #r:   rJ  c                   óV   a a€ ] tR tRt oV3R lV 3R lltR tV3R lR ltRtVtV ;t	# )ÚLinearAddModeliû  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  ÚLinearAddModel.__annotate__ü  ó   ø€ ÷ ?ñ ?˜$ñ ?r:   c                ó0  <€ \         SV `  4        \        P                  P	                  ^^4      P                  \        P                  R7      V n        \        P                  P	                  ^^4      P                  \        P                  R7      V n        R# r)  ©	r±  r8   rf   rÚ   rñ  r¿   r­   r*  Úfc2r+  s   &€r7   r8   ÚLinearAddModel.__init__ü  ó^   ø€ Ü‰ÑÔÜ—8‘8—?‘? 1 aÓ(×+Ñ+´%·+±+Ð+Ó>ˆŒÜ—8‘8—?‘? 1 aÓ(×+Ñ+´%·+±+Ð+Ó>ˆŽr:   c                óx   € V P                  V4      p\        P                  ! V^4      pV P                  V4      pV# ©r¼   )r*  rf   r”  rZ  r/  s   &&r7   r  ÚLinearAddModel.forward  s0   € Ø�H‰H�Q‹KˆÜ�IŠI�a˜‹OˆØ�H‰H�Q‹KˆØˆr:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  rV    r5  r:   c                ó2   € \         P                  ! ^^4      3# r¢   r7  rK   s   &r7   r8  Ú!LinearAddModel.get_example_inputs  r:  r:   ©r*  rZ  r;  r  s   @@r7   rT  rT  û  s#   ù‡ € ÷?ó ?ò
÷#÷ #ð #r:   rT  c                   ó8   a a€ ] tR tRt oV 3R ltR tRtVtV ;t# )ÚRNNDynamicModeli  c                óf  <€ \         SV `  4        \        V n        VR 8X  dD   \        P
                  P                  ^^4      P                  \        P                  R7      V n	        VR8X  dF   \        P
                  P                  ^^4      P                  \        P                  R7      V n	        R# R# )ÚGRUrï   ÚLSTMN)r±  r8   r   rÊ  rf   rÚ   rg  r¿   r­   rí  rh  ©r6   Úmod_typerÀ  s   &&€r7   r8   ÚRNNDynamicModel.__init__  sz   ø€ Ü‰ÑÔÜ.ˆŒØ�uÔÜ—x‘x—|‘| A qÓ)×,Ñ,´5·;±;Ð,Ó?ˆDŒHØ�vÔÜ—x‘x—}‘} Q¨Ó*×-Ñ-´E·K±KÐ-Ó@ˆDŽHñ r:   c                ó(   € V P                  V4      pV# rI   ©rí  r/  s   &&r7   r  ÚRNNDynamicModel.forward  r1  r:   ©rí  rÊ  ©	rY   rZ   r[   r\   r8   r  r_   r`   r  r  s   @@r7   re  re    s   ù‡ € õA÷ò r:   re  c                   ó8   a a€ ] tR tRt oV 3R ltR tRtVtV ;t# )ÚRNNCellDynamicModeli  c                ó–  <€ \         SV `  4        \        V n        VR 8X  dD   \        P
                  P                  ^^4      P                  \        P                  R7      V n	        VR8X  dD   \        P
                  P                  ^^4      P                  \        P                  R7      V n	        VR8X  dF   \        P
                  P                  ^^RR7      P                  \        P                  R7      V n	        VR8X  dH   \        P
                  P                  ^^RR7      P                  \        P                  R7      V n	        R# R# )	ÚGRUCellrï   ÚLSTMCellÚRNNReLUÚrelu)ÚnonlinearityÚRNNTanhÚtanhN)r±  r8   r   rÊ  rf   rÚ   rt  r¿   r­   rí  ru  ÚRNNCellri  s   &&€r7   r8   ÚRNNCellDynamicModel.__init__  sì   ø€ Ü‰ÑÔÜ.ˆŒØ�yÔ Ü—x‘x×'Ñ'¨¨1Ó-×0Ñ0´u·{±{Ð0ÓCˆDŒHØ�zÔ!Ü—x‘x×(Ñ(¨¨AÓ.×1Ñ1¼¿¹Ð1ÓDˆDŒHØ�yÔ Ü—x‘x×'Ñ'¨¨1¸6Ð'ÓB×EÑEÌEÏKÉKÐEÓXˆDŒHØ�yÔ Ü—x‘x×'Ñ'¨¨1¸6Ð'ÓB×EÑEÌEÏKÉKÐEÓXˆDŽHñ !r:   c                ó(   € V P                  V4      pV# rI   rm  r/  s   &&r7   r  ÚRNNCellDynamicModel.forward&  r1  r:   ro  rp  r  s   @@r7   rr  rr    s   ù‡ € õ
Y÷ò r:   rr  c                   ó<   a a€ ] tR tRt oRV 3R lltR tRtVtV ;t# )ÚLSTMwithHiddenDynamicModeli+  c                ó  <€ \         SV `  4        \        P                  P                  P                  V4      V n        \        P                  P                  ^^4      P                  \        P                  R7      V n        R# )rl  rï   N)r±  r8   rf   rÝ  rÞ  r   rÊ  rÚ   rh  r¿   r­   Úlstmr?  s   &&€r7   r8   Ú#LSTMwithHiddenDynamicModel.__init__,  sR   ø€ Ü‰ÑÔÜ—x‘x×,Ñ,×@Ñ@ÀÓIˆŒÜ—H‘H—M‘M ! QÓ'×*Ñ*´·±Ð*Ó=ˆŽ	r:   c                ó.   € V P                  W4      w  rW3# rI   )r‚  )r6   r   Úhids   &&&r7   r  Ú"LSTMwithHiddenDynamicModel.forward1  s   € Ø—‘˜1Ó"‰ˆØˆvˆr:   )r‚  rÊ  rH  rp  r  s   @@r7   r€  r€  +  s   ù‡ € ÷>÷
ò r:   r€  c                   óV   a a€ ] tR tRt oV3R lV 3R lltR tV3R lR ltRtVtV ;t	# )Ú	ConvModeli6  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  ÚConvModel.__annotate__7  s   ø€ ÷ Oñ O˜$ñ Or:   c                ó°   <€ \         SV `  4        \        P                  P	                  ^^^RR7      P                  \        P                  R7      V n        R# ©é   F©r"  rï   N)r±  r8   rf   rÚ   ÚConv2dr¿   r­   Úconvr+  s   &€r7   r8   ÚConvModel.__init__7  s<   ø€ Ü‰ÑÔÜ—H‘H—O‘O A q¨!°%�OÓ8×;Ñ;Ä%Ç+Á+Ð;ÓNˆŽ	r:   c                ó(   € V P                  V4      pV# rI   ©r�  r/  s   &&r7   r  ÚConvModel.forward;  ó   € Ø�I‰I�a‹LˆØˆr:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  rŠ  ?  ó   ø€ ÷ )ñ )¡E©#¨s¨(¥Oñ )r:   c                ó6   € \         P                  ! ^^^^4      3# r¢   r7  rK   s   &r7   r8  ÚConvModel.get_example_inputs?  ó   € Ü—
’
˜1˜a  AÓ&Ð(Ð(r:   r“  r;  r  s   @@r7   rˆ  rˆ  6  s%   ù‡ € ÷Oó Oò÷)÷ )ð )r:   rˆ  c                   óV   a a€ ] tR tRt oV3R lV 3R lltR tV3R lR ltRtVtV ;t	# )ÚConvTransposeModeliC  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  ÚConvTransposeModel.__annotate__D  s   ø€ ÷ Xñ X˜$ñ Xr:   c                ó°   <€ \         SV `  4        \        P                  P	                  ^^^RR7      P                  \        P                  R7      V n        R# rŒ  )r±  r8   rf   rÚ   ÚConvTranspose2dr¿   r­   r�  r+  s   &€r7   r8   ÚConvTransposeModel.__init__D  s?   ø€ Ü‰ÑÔÜ—H‘H×,Ñ,¨Q°°1¸5Ð,ÓA×DÑDÌ5Ï;É;ÐDÓWˆŽ	r:   c                ó(   € V P                  V4      pV# rI   r“  r/  s   &&r7   r  ÚConvTransposeModel.forwardH  r•  r:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  rž  L  r—  r:   c                ó6   € \         P                  ! ^^^^4      3# r¢   r7  rK   s   &r7   r8  Ú%ConvTransposeModel.get_example_inputsL  rš  r:   r“  r;  r  s   @@r7   rœ  rœ  C  s%   ù‡ € ÷Xó Xò÷)÷ )ð )r:   rœ  c                   óJ   a a€ ] tR tRt oV 3R ltR tV3R lR ltRtVtV ;t	# )ÚAnnotatedConvModeliP  c                óH  <€ \         SV `  4        \        P                  P                  P                  V4      V n        \        P                  P                  ^^^RR7      P                  \        P                  R7      V n        \        4       V n        \        4       V n        R# rŒ  )r±  r8   rf   rÝ  rÞ  r   rÊ  rÚ   r�  r¿   r­   r�  r   r«  r   rÃ  r?  s   &&€r7   r8   ÚAnnotatedConvModel.__init__Q  sj   ø€ Ü‰ÑÔÜ—x‘x×,Ñ,×@Ñ@ÀÓIˆŒÜ—H‘H—O‘O A q¨!°%�OÓ8×;Ñ;Ä%Ç+Á+Ð;ÓNˆŒ	Ü“[ˆŒ
Ü"“}ˆŽr:   c                ól   € V P                  V4      pV P                  V4      pV P                  V4      pV# rI   ©r«  r�  rÃ  r/  s   &&r7   r  ÚAnnotatedConvModel.forwardX  ó.   € Ø�J‰J�q‹MˆØ�I‰I�a‹LˆØ�L‰L˜‹OˆØˆr:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  ÚAnnotatedConvModel.__annotate__^  r—  r:   c                ó6   € \         P                  ! ^^^^4      3# r¢   r7  rK   s   &r7   r8  Ú%AnnotatedConvModel.get_example_inputs^  rš  r:   ©r�  rÃ  rÊ  r«  r;  r  s   @@r7   r¨  r¨  P  ó   ù‡ € õ%ò÷)÷ )ð )r:   r¨  c                   óJ   a a€ ] tR tRt oV 3R ltR tV3R lR ltRtVtV ;t	# )ÚAnnotatedConvTransposeModelib  c                óH  <€ \         SV `  4        \        P                  P                  P                  V4      V n        \        P                  P                  ^^^RR7      P                  \        P                  R7      V n        \        4       V n        \        4       V n        R# rŒ  )r±  r8   rf   rÝ  rÞ  r   rÊ  rÚ   r   r¿   r­   r�  r   r«  r   rÃ  r?  s   &&€r7   r8   Ú$AnnotatedConvTransposeModel.__init__c  sm   ø€ Ü‰ÑÔÜ—x‘x×,Ñ,×@Ñ@ÀÓIˆŒÜ—H‘H×,Ñ,¨Q°°1¸5Ð,ÓA×DÑDÌ5Ï;É;ÐDÓWˆŒ	Ü“[ˆŒ
Ü"“}ˆŽr:   c                ól   € V P                  V4      pV P                  V4      pV P                  V4      pV# rI   r¬  r/  s   &&r7   r  Ú#AnnotatedConvTransposeModel.forwardj  r®  r:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  Ú(AnnotatedConvTransposeModel.__annotate__p  r—  r:   c                ó6   € \         P                  ! ^^^^4      3# r¢   r7  rK   s   &r7   r8  Ú.AnnotatedConvTransposeModel.get_example_inputsp  rš  r:   r³  r;  r  s   @@r7   r¶  r¶  b  r´  r:   r¶  c                   óV   a a€ ] tR tRt oV3R lV 3R lltR tV3R lR ltRtVtV ;t	# )ÚConvBnModelit  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  ÚConvBnModel.__annotate__u  s   ø€ ÷ @ñ @˜$ñ @r:   c                ó4  <€ \         SV `  4        \        P                  P	                  ^^^RR7      P                  \        P                  R7      V n        \        P                  P                  ^4      P                  \        P                  R7      V n	        R# rŒ  )
r±  r8   rf   rÚ   r�  r¿   r­   r�  ÚBatchNorm2dÚbnr+  s   &€r7   r8   ÚConvBnModel.__init__u  sd   ø€ Ü‰ÑÔÜ—H‘H—O‘O A q¨!°%�OÓ8×;Ñ;Ä%Ç+Á+Ð;ÓNˆŒ	Ü—(‘(×&Ñ& qÓ)×,Ñ,´5·;±;Ð,Ó?ˆŽr:   c                óJ   € V P                  V4      pV P                  V4      pV# rI   ©r�  rÅ  r/  s   &&r7   r  ÚConvBnModel.forwardz  ó!   € Ø�I‰I�a‹LˆØ�G‰G�A‹JˆØˆr:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  rÂ    r—  r:   c                ó6   € \         P                  ! ^^^^4      3# r¢   r7  rK   s   &r7   r8  ÚConvBnModel.get_example_inputs  rš  r:   ©rÅ  r�  r;  r  s   @@r7   rÀ  rÀ  t  s%   ù‡ € ÷@ó @ò
÷
)÷ )ð )r:   rÀ  c                   óV   a a€ ] tR tRt oV3R lV 3R lltR tV3R lR ltRtVtV ;t	# )ÚAnnotatedConvBnModeliƒ  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú!AnnotatedConvBnModel.__annotate__„  s   ø€ ÷ %ñ %˜$ñ %r:   c                ó†  <€ \         SV `  4        \        V n        \        P
                  P                  ^^^RR7      P                  \        P                  R7      V n	        \        P
                  P                  ^4      P                  \        P                  R7      V n        \        4       V n        \        4       V n        R# rŒ  )r±  r8   r   rÊ  rf   rÚ   r�  r¿   r­   r�  rÄ  rÅ  r   r«  r   rÃ  r+  s   &€r7   r8   ÚAnnotatedConvBnModel.__init__„  s}   ø€ Ü‰ÑÔÜ&ˆŒÜ—H‘H—O‘O A q¨!°%�OÓ8×;Ñ;Ä%Ç+Á+Ð;ÓNˆŒ	Ü—(‘(×&Ñ& qÓ)×,Ñ,´5·;±;Ð,Ó?ˆŒÜ“[ˆŒ
Ü"“}ˆŽr:   c                óŽ   € V P                  V4      pV P                  V4      pV P                  V4      pV P                  V4      pV# rI   )r«  r�  rÅ  rÃ  r/  s   &&r7   r  ÚAnnotatedConvBnModel.forwardŒ  s;   € Ø�J‰J�q‹MˆØ�I‰I�a‹LˆØ�G‰G�A‹JˆØ�L‰L˜‹OˆØˆr:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  rÒ  “  r—  r:   c                ó6   € \         P                  ! ^^^^4      3# r¢   r7  rK   s   &r7   r8  Ú'AnnotatedConvBnModel.get_example_inputs“  rš  r:   )rÅ  r�  rÃ  rÊ  r«  r;  r  s   @@r7   rÐ  rÐ  ƒ  s#   ù‡ € ÷%ó %ò÷)÷ )ð )r:   rÐ  c                   óV   a a€ ] tR tRt oV3R lV 3R lltR tV3R lR ltRtVtV ;t	# )ÚConvBnReLUModeli—  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  ÚConvBnReLUModel.__annotate__˜  ó   ø€ ÷ *ñ *˜$ñ *r:   c                ól  <€ \         SV `  4        \        P                  P	                  ^^^RR7      P                  \        P                  R7      V n        \        P                  P                  ^4      P                  \        P                  R7      V n	        \        P                  ! RR7      V n        R# ©r�  FrŽ  rï   Trã   N)r±  r8   rf   rÚ   r�  r¿   r­   r�  rÄ  rÅ  ÚReLUrw  r+  s   &€r7   r8   ÚConvBnReLUModel.__init__˜  st   ø€ Ü‰ÑÔÜ—H‘H—O‘O A q¨!°%�OÓ8×;Ñ;Ä%Ç+Á+Ð;ÓNˆŒ	Ü—(‘(×&Ñ& qÓ)×,Ñ,´5·;±;Ð,Ó?ˆŒÜ—G’G DÔ)ˆŽ	r:   c                ól   € V P                  V4      pV P                  V4      pV P                  V4      pV# rI   ©r�  rÅ  rw  r/  s   &&r7   r  ÚConvBnReLUModel.forwardž  s.   € Ø�I‰I�a‹LˆØ�G‰G�A‹JˆØ�I‰I�a‹LˆØˆr:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  rÝ  ¤  r—  r:   c                ó6   € \         P                  ! ^^^^4      3# r¢   r7  rK   s   &r7   r8  Ú"ConvBnReLUModel.get_example_inputs¤  rš  r:   ©rÅ  r�  rw  r;  r  s   @@r7   rÛ  rÛ  —  s#   ù‡ € ÷*ó *ò÷)÷ )ð )r:   rÛ  c                   óT   a a€ ] tR tRt oRV 3R lltR tR tV3R lR ltRtVt	V ;t
# )	ÚAnnotatedConvBnReLUModeli¨  c                ó  <€ \         SV `  4        \        P                  P                  P                  V4      V n        \        P                  P                  ^^^RR7      P                  \        P                  R7      V n        \        P                  P                  ^4      P                  \        P                  R7      V n        \        P                  ! RR7      V n        \!        4       V n        \%        4       V n        R# rà  )r±  r8   rf   rÝ  rÞ  r   rÊ  rÚ   r�  r¿   r­   r�  rÄ  rÅ  rá  rw  r   r«  r   rÃ  r?  s   &&€r7   r8   Ú!AnnotatedConvBnReLUModel.__init__©  s¢   ø€ Ü‰ÑÔÜ—x‘x×,Ñ,×@Ñ@ÀÓIˆŒÜ—H‘H—O‘O A q¨!°%�OÓ8×;Ñ;Ä%Ç+Á+Ð;ÓNˆŒ	Ü—(‘(×&Ñ& qÓ)×,Ñ,´5·;±;Ð,Ó?ˆŒÜ—G’G DÔ)ˆŒ	Ü“[ˆŒ
Ü"“}ˆŽr:   c                ó°   € V P                  V4      pV P                  V4      pV P                  V4      pV P                  V4      pV P	                  V4      pV# rI   )r«  r�  rÅ  rw  rÃ  r/  s   &&r7   r  Ú AnnotatedConvBnReLUModel.forward²  sH   € Ø�J‰J�q‹MˆØ�I‰I�a‹LˆØ�G‰G�A‹JˆØ�I‰I�a‹LˆØ�L‰L˜‹OˆØˆr:   c                óê   € V P                   '       d2   \        P                  P                  P	                  V . RO.RR7       R# \        P                  P                  P                  V . RO.RR7       R# )r�  Trã   Nrä  ©Útrainingrf   rÝ  rÞ  Úfuse_modules_qatÚfuse_modulesrK   s   &r7   Ú
fuse_modelÚ#AnnotatedConvBnReLUModel.fuse_modelº  s]   € à�=�=ˆ=Ü�H‰H×!Ñ!×2Ñ2ØÒ-Ð.¸ð 3ö ô �H‰H×!Ñ!×.Ñ.ØÒ-Ð.¸ð /ö r:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  Ú%AnnotatedConvBnReLUModel.__annotate__Å  r—  r:   c                ó6   € \         P                  ! ^^^^4      3# r¢   r7  rK   s   &r7   r8  Ú+AnnotatedConvBnReLUModel.get_example_inputsÅ  rš  r:   )rÅ  r�  rÃ  rÊ  r«  rw  rH  )rY   rZ   r[   r\   r8   r  rõ  r8  r_   r`   r  r  s   @@r7   rë  rë  ¨  s#   ù‡ € ÷%òò	÷)÷ )ð )r:   rë  c                   óV   a a€ ] tR tRt oV3R lV 3R lltR tV3R lR ltRtVtV ;t	# )ÚTwoLayerConvModeliÉ  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  ÚTwoLayerConvModel.__annotate__Ê  s   ø€ ÷ Pñ P˜$ñ Pr:   c                ó<  <€ \         SV `  4        \        P                  P	                  ^^^RR7      P                  \        P                  R7      V n        \        P                  P	                  ^^^RR7      P                  \        P                  R7      V n        R# rŒ  )	r±  r8   rf   rÚ   r�  r¿   r­   Úconv1Úconv2r+  s   &€r7   r8   ÚTwoLayerConvModel.__init__Ê  sj   ø€ Ü‰ÑÔÜ—X‘X—_‘_ Q¨¨1°5�_Ó9×<Ñ<Ä5Ç;Á;Ð<ÓOˆŒ
Ü—X‘X—_‘_ Q¨¨1°5�_Ó9×<Ñ<Ä5Ç;Á;Ð<ÓOˆŽ
r:   c                óJ   € V P                  V4      pV P                  V4      pV# rI   ©r   r  r/  s   &&r7   r  ÚTwoLayerConvModel.forwardÏ  ó!   € Ø�J‰J�q‹MˆØ�J‰J�q‹MˆØˆr:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  rþ  Ô  r—  r:   c                ó6   € \         P                  ! ^^^^4      3# r¢   r7  rK   s   &r7   r8  Ú$TwoLayerConvModel.get_example_inputsÔ  rš  r:   r  r;  r  s   @@r7   rü  rü  É  s%   ù‡ € ÷Pó Pò
÷
)÷ )ð )r:   rü  c                   óV   a a€ ] tR tRt oV3R lV 3R lltR tV3R lR ltRtVtV ;t	# )ÚTwoLayerLinearModeliØ  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú TwoLayerLinearModel.__annotate__Ù  rW  r:   c                ó0  <€ \         SV `  4        \        P                  P	                  ^^4      P                  \        P                  R7      V n        \        P                  P	                  ^^4      P                  \        P                  R7      V n        R# r)  rY  r+  s   &€r7   r8   ÚTwoLayerLinearModel.__init__Ù  r\  r:   c                óJ   € V P                  V4      pV P                  V4      pV# rI   rc  r/  s   &&r7   r  ÚTwoLayerLinearModel.forwardÞ  ó!   € Ø�H‰H�Q‹KˆØ�H‰H�Q‹KˆØˆr:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  r  ã  r5  r:   c                ó2   € \         P                  ! ^^4      3# r¢   r7  rK   s   &r7   r8  Ú&TwoLayerLinearModel.get_example_inputsã  r:  r:   rc  r;  r  s   @@r7   r  r  Ø  s#   ù‡ € ÷?ó ?ò
÷
#÷ #ð #r:   r  c                   óV   a a€ ] tR tRt oV3R lV 3R lltR tV3R lR ltRtVtV ;t	# )ÚLinearModelWithSubmoduleiç  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú%LinearModelWithSubmodule.__annotate__è  s   ø€ ÷ "ñ "˜$ñ "r:   c                óz   <€ \         SV `  4        \        4       V n        \        P
                  ! ^^4      V n        R# ©r¼   N)r±  r8   r  ÚsubmrÚ   rñ  Úfcr+  s   &€r7   r8   Ú!LinearModelWithSubmodule.__init__è  s)   ø€ Ü‰ÑÔÜ'Ó)ˆŒ	Ü—)’)˜A˜q“/ˆŽr:   c                óJ   € V P                  V4      pV P                  V4      pV# rI   )r  r  r/  s   &&r7   r  Ú LinearModelWithSubmodule.forwardí  rÊ  r:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  r  ò  ó   ø€ ÷ .ñ .¡E©#¨s¨(¥Oñ .r:   c                ó6   € V P                   P                  4       # rI   )r  r8  rK   s   &r7   r8  Ú+LinearModelWithSubmodule.get_example_inputsò  ó   € Ø�y‰y×+Ñ+Ó-Ð-r:   )r  r  r;  r  s   @@r7   r  r  ç  s#   ù‡ € ÷"ó "ò
÷
.÷ .ð .r:   r  c                   óV   a a€ ] tR tRt oV3R lV 3R lltR tV3R lR ltRtVtV ;t	# )ÚAnnotatedTwoLayerLinearModeliö  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú)AnnotatedTwoLayerLinearModel.__annotate__÷  s   ø€ ÷ Oñ O˜$ñ Or:   c                ó²  <€ \         SV `  4        \        P                  P	                  ^^4      P                  \        P                  R7      V n        \        \        P                  P	                  ^^4      P                  \        P                  R7      4      V n	        \        P                  P                  P                  R4      V P                  n        R# ©r¼   rï   r  N)r±  r8   rf   rÚ   rñ  r¿   r­   r*  r   rZ  rÝ  rÞ  r   rÊ  r+  s   &€r7   r8   Ú%AnnotatedTwoLayerLinearModel.__init__÷  s„   ø€ Ü‰ÑÔÜ—8‘8—?‘? 1 aÓ(×+Ñ+´%·+±+Ð+Ó>ˆŒÜ¤§¡§¡°°1Ó 5× 8Ñ 8¼u¿{¹{Ð 8Ó KÓLˆŒÜ Ÿ8™8×0Ñ0×DÑDÀXÓNˆ�‰Ör:   c                óJ   € V P                  V4      pV P                  V4      pV# rI   rc  r/  s   &&r7   r  Ú$AnnotatedTwoLayerLinearModel.forwardý  r  r:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  r)    r5  r:   c                ó2   € \         P                  ! ^^4      3# r¢   r7  rK   s   &r7   r8  Ú/AnnotatedTwoLayerLinearModel.get_example_inputs  r:  r:   rc  r;  r  s   @@r7   r'  r'  ö  s%   ù‡ € ÷Oó Oò÷
#÷ #ð #r:   r'  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )ÚActivationsTestModeli  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú!ActivationsTestModel.__annotate__  s   ø€ ÷ ;ñ ;˜$ñ ;r:   c                ó8  <€ \         SV `  4        \        P                  P                  P                  R 4      V n        \        P                  P                  P                  4       V n        \        P                  P                  4       P                  \        P                  R7      V n        \        P                  P                  4       P                  \        P                  R7      V n        \        P                  P                  P!                  4       V n        R# )r  rï   N)r±  r8   rf   rÝ  rÞ  r   rÊ  r   r«  rÚ   Ú	Hardswishr¿   r­   Ú	hardswishÚELUÚelur   rÃ  r+  s   &€r7   r8   ÚActivationsTestModel.__init__  s§   ø€ Ü‰ÑÔÜ—x‘x×,Ñ,×@Ñ@ÀÓJˆŒÜ—X‘X×*Ñ*×4Ñ4Ó6ˆŒ
ÜŸ™×+Ñ+Ó-×0Ñ0´u·{±{Ð0ÓCˆŒÜ—8‘8—<‘<“>×$Ñ$¬5¯;©;Ð$Ó7ˆŒÜ—x‘x×,Ñ,×8Ñ8Ó:ˆŽr:   c                óŽ   € V P                  V4      pV P                  V4      pV P                  V4      pV P                  V4      pV# rI   )r«  r8  r:  rÃ  r/  s   &&r7   r  ÚActivationsTestModel.forward  s<   € Ø�J‰J�q‹MˆØ�N‰N˜1ÓˆØ�H‰H�Q‹KˆØ�L‰L˜‹OˆØˆr:   )rÃ  r:  r8  rÊ  r«  rp  r  s   @@r7   r3  r3    s   ù‡ € ÷;ó ;÷ò r:   r3  c                   óV   a a€ ] tR tRt oV3R lV 3R lltR tV3R lR ltRtVtV ;t	# )ÚLinearReluModeli  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  ÚLinearReluModel.__annotate__  ó   ø€ ÷ $ñ $˜$ñ $r:   c                óð   <€ \         SV `  4        \        P                  P	                  ^^4      P                  \        P                  R7      V n        \        P                  P                  4       V n	        R# r)  ©
r±  r8   rf   rÚ   rñ  r¿   r­   r  rá  rw  r+  s   &€r7   r8   ÚLinearReluModel.__init__  sG   ø€ Ü‰ÑÔÜ—(‘(—/‘/ ! QÓ'×*Ñ*´·±Ð*Ó=ˆŒÜ—H‘H—M‘M“OˆŽ	r:   c                óF   € V P                  V P                  V4      4      pV# rI   ©rw  r  r/  s   &&r7   r  ÚLinearReluModel.forward  ó   € Ø�I‰I�d—g‘g˜a“jÓ!ˆØˆr:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  rA  !  r5  r:   c                ó2   € \         P                  ! ^^4      3# r¢   r7  rK   s   &r7   r8  Ú"LinearReluModel.get_example_inputs!  r:  r:   ©r  rw  r;  r  s   @@r7   r?  r?    s#   ù‡ € ÷$ó $ò
÷#÷ #ð #r:   r?  c                   óV   a a€ ] tR tRt oV3R lV 3R lltR tV3R lR ltRtVtV ;t	# )ÚLinearReluLinearModeli%  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú"LinearReluLinearModel.__annotate__&  ó   ø€ ÷ ?ñ ?˜$ñ ?r:   c                óv  <€ \         SV `  4        \        P                  P	                  ^^4      P                  \        P                  R7      V n        \        P                  P                  4       V n	        \        P                  P	                  ^^4      P                  \        P                  R7      V n
        R# r)  ©r±  r8   rf   rÚ   rñ  r¿   r­   r*  rá  rw  rZ  r+  s   &€r7   r8   ÚLinearReluLinearModel.__init__&  óo   ø€ Ü‰ÑÔÜ—8‘8—?‘? 1 aÓ(×+Ñ+´%·+±+Ð+Ó>ˆŒÜ—H‘H—M‘M“OˆŒ	Ü—8‘8—?‘? 1 aÓ(×+Ñ+´%·+±+Ð+Ó>ˆŽr:   c                ól   € V P                  V4      pV P                  V4      pV P                  V4      pV# rI   ©r*  rw  rZ  r/  s   &&r7   r  ÚLinearReluLinearModel.forward,  ó.   € Ø�H‰H�Q‹KˆØ�I‰I�a‹LˆØ�H‰H�Q‹KˆØˆr:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  rQ  2  r5  r:   c                ó2   € \         P                  ! ^^4      3# r¢   r7  rK   s   &r7   r8  Ú(LinearReluLinearModel.get_example_inputs2  r:  r:   ©r*  rZ  rw  r;  r  s   @@r7   rO  rO  %  s#   ù‡ € ÷?ó ?ò÷#÷ #ð #r:   rO  c                   óV   a a€ ] tR tRt oV3R lV 3R lltR tV3R lR ltRtVtV ;t	# )ÚLinearReluAddModeli6  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  ÚLinearReluAddModel.__annotate__7  rR  r:   c                óv  <€ \         SV `  4        \        P                  P	                  ^^4      P                  \        P                  R7      V n        \        P                  P                  4       V n	        \        P                  P	                  ^^4      P                  \        P                  R7      V n
        R# r)  rT  r+  s   &€r7   r8   ÚLinearReluAddModel.__init__7  rV  r:   c                óà   € V P                  V4      pV P                  V4      p\        P                  ! V^4      pV P	                  V4      p\        P
                  P                  4       V n        V# r^  ©r*  rw  rf   r”  rZ  rÚ   rá  r/  s   &&r7   r  ÚLinearReluAddModel.forward=  óN   € Ø�H‰H�Q‹KˆØ�I‰I�a‹LˆÜ�IŠI�a˜‹OˆØ�H‰H�Q‹KˆÜ—H‘H—M‘M“OˆŒ	Øˆr:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  rb  E  r5  r:   c                ó2   € \         P                  ! ^^4      3# r¢   r7  rK   s   &r7   r8  Ú%LinearReluAddModel.get_example_inputsE  r:  r:   r^  r;  r  s   @@r7   r`  r`  6  s#   ù‡ € ÷?ó ?ò÷#÷ #ð #r:   r`  c                   óN   a a€ ] tR tRt oRV 3R lltR tV3R lR ltRtVtV ;t	# )ÚLinearBnLeakyReluModeliI  c                óÔ   <€ \         SV `  4        \        P                  ! ^^4      V n        \        P
                  ! ^4      V n        \        P                  ! R4      V n        Wn	        R# )r¼   g{®Gáz„?N)
r±  r8   rÚ   rñ  ÚlinearÚBatchNorm1dÚbn1dÚ	LeakyReLUÚ
leaky_reluÚwith_bn)r6   rt  rÀ  s   &&€r7   r8   ÚLinearBnLeakyReluModel.__init__J  sD   ø€ Ü‰ÑÔÜ—i’i  1“oˆŒÜ—N’N 1Ó%ˆŒ	ÜŸ,š, tÓ,ˆŒØŽr:   c                ó�   € V P                  V4      pV P                  '       d   V P                  V4      pV P                  V4      pV# rI   )ro  rt  rq  rs  r/  s   &&r7   r  ÚLinearBnLeakyReluModel.forwardQ  s8   € Ø�K‰K˜‹NˆØ�<�<ˆ<Ø—	‘	˜!“ˆAØ�O‰O˜AÓˆØˆr:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  Ú#LinearBnLeakyReluModel.__annotate__X  r5  r:   c                ó2   € \         P                  ! ^^4      3# r¢   r7  rK   s   &r7   r8  Ú)LinearBnLeakyReluModel.get_example_inputsX  r:  r:   )rq  rs  ro  rt  r  r;  r  s   @@r7   rm  rm  I  s   ù‡ € ÷ò÷#÷ #ð #r:   rm  c                   óV   a a€ ] tR tRt oV3R lV 3R lltR tV3R lR ltRtVtV ;t	# )ÚLinearTanhModeli\  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  ÚLinearTanhModel.__annotate__]  s   ø€ ÷ ñ ˜$ñ r:   c                ó�   <€ \         SV `  4        \        P                  ! ^^4      V n        \        P
                  ! 4       V n        R# r  )r±  r8   rÚ   rñ  ro  ÚTanhrz  r+  s   &€r7   r8   ÚLinearTanhModel.__init__]  s,   ø€ Ü‰ÑÔÜ—i’i  1“oˆŒÜ—G’G“IˆŽ	r:   c                óJ   € V P                  V4      pV P                  V4      pV# rI   ©ro  rz  r/  s   &&r7   r  ÚLinearTanhModel.forwardb  s!   € Ø�K‰K˜‹NˆØ�I‰I�a‹LˆØˆr:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  r  g  r5  r:   c                ó2   € \         P                  ! ^^4      3# r¢   r7  rK   s   &r7   r8  Ú"LinearTanhModel.get_example_inputsg  r:  r:   r„  r;  r  s   @@r7   r}  r}  \  s#   ù‡ € ÷ó ò
÷
#÷ #ð #r:   r}  c                   óN   a a€ ] tR tRt oRV 3R lltR tV3R lR ltRtVtV ;t	# )ÚConvBnAddReluModelik  c                ó>  <€ \         SV `  4        \        P                  ! ^^R4      V n        \        P                  ! ^^R4      V n        \        P                  ! ^4      V n        \        P                  ! 4       V n	        Wn
        W n        W@n        W0n        WPn        R# )r¼   N)rl  rl  )r±  r8   rÚ   r�  r�  r  rÄ  rÅ  rá  rw  rt  Ú	with_reluÚtwo_convÚ	left_convÚuse_torch_add)r6   rt  rŒ  rŽ  r�  r�  rÀ  s   &&&&&&€r7   r8   ÚConvBnAddReluModel.__init__l  so   ø€ ô 	‰ÑÔÜ—I’I˜a  FÓ+ˆŒ	Ü—Y’Y˜q ! VÓ,ˆŒ
Ü—.’. Ó#ˆŒÜ—G’G“IˆŒ	ØŒØ"ŒØ ŒØ"ŒØ*Ör:   c                ó  € V P                   '       Ed   V P                  '       d�   V P                  '       dG   \        P                  ! V P                  V P                  V4      4      V P                  V4      4      pEMa\        P                  ! V P                  V4      V P                  V4      4      pEM*V P                  '       d9   V P                  V P                  V4      4      V P                  V4      ,           pEMàV P                  V4      V P                  V4      ,           pEM·V P                  '       dñ   V P                  '       dr   V P                  '       d8   \        P                  ! V P                  V P                  V4      4      V4      pEMJ\        P                  ! V P                  V4      V4      pEM"V P                  '       d6   \        P                  ! W P                  V P                  V4      4      4      pMÛ\        P                  ! W P                  V4      4      pMµV P                  '       dT   V P                  '       d)   V P                  V P                  V4      4      V,           pMiV P                  V4      V,           pMPV P                  '       d(   W P                  V P                  V4      4      ,           pMW P                  V4      ,           pV P                  '       d   V P                  V4      pV# rI   )r�  r�  rt  rf   r”  rÅ  r�  r  rŽ  rŒ  rw  )r6   Úx1Úx2r   s   &&& r7   r  ÚConvBnAddReluModel.forward  sÐ  € Ø�=�=‰=Ø×!×!Ð!Ø—<—<�<ÜŸ	š	 $§'¡'¨$¯)©)°B«-Ó"8¸$¿*¹*ÀR».ÓI’AäŸ	š	 $§)¡)¨B£-°·±¸B³Ó@’Aà—<—<�<ØŸ™ §	¡	¨"£Ó.°·±¸B³Õ?’AàŸ	™	 "›¨¯
©
°2«Õ6’Aà×!×!Ð!Ø—>—>�>Ø—|—|�|Ü!ŸIšI d§g¡g¨d¯i©i¸«mÓ&<¸bÓAšä!ŸIšI d§i¡i°£m°RÓ8šà—|—|�|Ü!ŸIšI b¯'©'°$·)±)¸B³-Ó*@ÓA™ä!ŸIšI b¯)©)°B«-Ó8™à—>—>�>Ø—|—|�|Ø ŸG™G D§I¡I¨b£MÓ2°RÕ7™à ŸI™I b›M¨BÕ.™à—|—|�|Ø§¡¨¯©°2«Ó!7Õ7™à§¡¨2£Õ.˜Ø�>�>ˆ>Ø—	‘	˜!“ˆAØˆr:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  ÚConvBnAddReluModel.__annotate__¦  s   ø€ ÷ @ñ @¡E©#¨s¨(¥Oñ @r:   c                óf   € \         P                  ! ^^^^4      \         P                  ! ^^^^4      3# r¢   r7  rK   s   &r7   r8  Ú%ConvBnAddReluModel.get_example_inputs¦  s+   € Ü—
’
˜1˜a  AÓ&¬¯
ª
°1°a¸¸AÓ(>Ð?Ð?r:   )	rÅ  r�  r  rŽ  rw  r�  r�  rt  rŒ  )TTTTTr;  r  s   @@r7   rŠ  rŠ  k  s"   ù‡ € ÷+ò&%÷N@÷ @ð @r:   rŠ  c                   óV   a a€ ] tR tRt oV3R lV 3R lltR tV3R lR ltRtVtV ;t	# )ÚConvReluModeli«  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  ÚConvReluModel.__annotate__¬  rB  r:   c                óò   <€ \         SV `  4        \        P                  P	                  ^^^4      P                  \        P                  R7      V n        \        P                  P                  4       V n	        R# ©r�  rï   N)
r±  r8   rf   rÚ   r�  r¿   r­   r  rá  rw  r+  s   &€r7   r8   ÚConvReluModel.__init__¬  sI   ø€ Ü‰ÑÔÜ—(‘(—/‘/ ! Q¨Ó*×-Ñ-´E·K±KÐ-Ó@ˆŒÜ—H‘H—M‘M“OˆŽ	r:   c                óF   € V P                  V P                  V4      4      pV# rI   rG  r/  s   &&r7   r  ÚConvReluModel.forward±  rI  r:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  rœ  µ  r—  r:   c                ó6   € \         P                  ! ^^^^4      3# r¢   r7  rK   s   &r7   r8  Ú ConvReluModel.get_example_inputsµ  rš  r:   rM  r;  r  s   @@r7   rš  rš  «  s#   ù‡ € ÷$ó $ò
÷)÷ )ð )r:   rš  c                   óV   a a€ ] tR tRt oV3R lV 3R lltR tV3R lR ltRtVtV ;t	# )ÚConvReluConvModeliº  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  ÚConvReluConvModel.__annotate__»  ó   ø€ ÷ Bñ B˜$ñ Br:   c                óz  <€ \         SV `  4        \        P                  P	                  ^^^4      P                  \        P                  R7      V n        \        P                  P                  4       V n	        \        P                  P	                  ^^^4      P                  \        P                  R7      V n
        R# rž  ©r±  r8   rf   rÚ   r�  r¿   r­   r*  rá  rw  rZ  r+  s   &€r7   r8   ÚConvReluConvModel.__init__»  ós   ø€ Ü‰ÑÔÜ—8‘8—?‘? 1 a¨Ó+×.Ñ.´U·[±[Ð.ÓAˆŒÜ—H‘H—M‘M“OˆŒ	Ü—8‘8—?‘? 1 a¨Ó+×.Ñ.´U·[±[Ð.ÓAˆŽr:   c                ól   € V P                  V4      pV P                  V4      pV P                  V4      pV# rI   rX  r/  s   &&r7   r  ÚConvReluConvModel.forwardÁ  rZ  r:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  r¨  Ç  r—  r:   c                ó6   € \         P                  ! ^^^^4      3# r¢   r7  rK   s   &r7   r8  Ú$ConvReluConvModel.get_example_inputsÇ  rš  r:   r^  r;  r  s   @@r7   r¦  r¦  º  s%   ù‡ € ÷Bó Bò÷)÷ )ð )r:   r¦  c                   óV   a a€ ] tR tRt oV3R lV 3R lltR tV3R lR ltRtVtV ;t	# )ÚConvReluAddModeliÌ  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  ÚConvReluAddModel.__annotate__Í  r©  r:   c                óz  <€ \         SV `  4        \        P                  P	                  ^^^4      P                  \        P                  R7      V n        \        P                  P                  4       V n	        \        P                  P	                  ^^^4      P                  \        P                  R7      V n
        R# rž  r«  r+  s   &€r7   r8   ÚConvReluAddModel.__init__Í  r­  r:   c                óà   € V P                  V4      pV P                  V4      p\        P                  ! V^4      pV P	                  V4      p\        P
                  P                  4       V n        V# r^  rf  r/  s   &&r7   r  ÚConvReluAddModel.forwardÓ  rh  r:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  r¶  Û  r—  r:   c                ó6   € \         P                  ! ^^^^4      3# r¢   r7  rK   s   &r7   r8  Ú#ConvReluAddModel.get_example_inputsÛ  rš  r:   r^  r;  r  s   @@r7   r´  r´  Ì  s%   ù‡ € ÷Bó Bò÷)÷ )ð )r:   r´  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )ÚNormalizationTestModeliß  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú#NormalizationTestModel.__annotate__à  ó   ø€ ÷ :ñ :˜$ñ :r:   c                ón  <€ \         SV `  4        \        P                  P                  P                  4       V n        \        P                  P                  ^^4      P                  \        P                  R7      V n        \        P                  P                  ^4      V n        \        P                  P                  ^^4      V n        \        P                  P!                  ^4      V n        \        P                  P%                  ^4      V n        \        P                  P)                  ^4      V n        R# r)  )r±  r8   rf   rÝ  rÞ  r   r«  rÚ   rñ  r¿   r­   r*  Ú	LayerNormÚ
layer_normÚ	GroupNormÚ
group_normÚInstanceNorm1dÚinstance_norm1dÚInstanceNorm2dÚinstance_norm2dÚInstanceNorm3dÚinstance_norm3dr+  s   &€r7   r8   ÚNormalizationTestModel.__init__à  sÃ   ø€ Ü‰ÑÔÜ—X‘X×*Ñ*×4Ñ4Ó6ˆŒ
Ü—8‘8—?‘? 1 aÓ(×+Ñ+´%·+±+Ð+Ó>ˆŒÜŸ(™(×,Ñ,¨QÓ/ˆŒÜŸ(™(×,Ñ,¨Q°Ó2ˆŒÜ$Ÿx™x×6Ñ6°qÓ9ˆÔÜ$Ÿx™x×6Ñ6°qÓ9ˆÔÜ$Ÿx™x×6Ñ6°qÓ9ˆÖr:   c                óp  € V P                  V4      pV P                  V4      pV P                  V4      pV P                  VP	                  R4      P                  ^^^4      4      pV P                  V4      pV P                  VP	                  R4      4      pV P                  VP	                  R4      4      pV# ©r£   r¦   )	r«  r*  rÅ  rÇ  rŸ  ÚrepeatrÉ  rË  rÍ  r/  s   &&r7   r  ÚNormalizationTestModel.forwardê  s”   € Ø�J‰J�q‹MˆØ�H‰H�Q‹KˆØ�O‰O˜AÓˆØ�O‰O˜AŸK™K¨›O×2Ñ2°1°a¸Ó;Ó<ˆØ× Ñ  Ó#ˆØ× Ñ  §¡¨R£Ó1ˆØ× Ñ  §¡¨R£Ó1ˆØˆr:   )r*  rÇ  rÉ  rË  rÍ  rÅ  r«  rp  r  s   @@r7   r¿  r¿  ß  s   ù‡ € ÷:ó :÷ò r:   r¿  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )ÚNestedModeliõ  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  ÚNestedModel.__annotate__ö  rR  r:   c                óæ   <€ \         SV `  4        \        4       V n        \	        4       V n        \        P                  P                  ^^4      P                  \        P                  R7      V n        R# r)  )r±  r8   r?  Úsub1r  Úsub2rf   rÚ   rñ  r¿   r­   Úfc3r+  s   &€r7   r8   ÚNestedModel.__init__ö  sJ   ø€ Ü‰ÑÔÜ#Ó%ˆŒ	Ü'Ó)ˆŒ	Ü—8‘8—?‘? 1 aÓ(×+Ñ+´%·+±+Ð+Ó>ˆŽr:   c                ól   € V P                  V4      pV P                  V4      pV P                  V4      pV# rI   ©rØ  rÙ  rÚ  r/  s   &&r7   r  ÚNestedModel.forwardü  ó.   € Ø�I‰I�a‹LˆØ�I‰I�a‹LˆØ�H‰H�Q‹KˆØˆr:   ©rÚ  rØ  rÙ  rp  r  s   @@r7   rÔ  rÔ  õ  s   ù‡ € ÷?ó ?÷ò r:   rÔ  c                   ó8   a a€ ] tR tRt oV 3R ltR tRtVtV ;t# )ÚAnnotatedNestedModeli  c                ó  <€ \         SV `  4        \        4       V n        \	        4       V n        \        \        P                  P                  ^^4      P                  \        P                  R7      4      V n        \        V P                  n        \        V P
                  P                  4      V P
                  n        VR8X  d"   \         V P
                  P                  n        R# \        V P
                  P                  n        R# r+  )r±  r8   r?  rØ  r  rÙ  r   rf   rÚ   rñ  r¿   r­   rÚ  r   rÊ  r*  r
   r?  s   &&€r7   r8   ÚAnnotatedNestedModel.__init__  s›   ø€ Ü‰ÑÔÜ#Ó%ˆŒ	Ü'Ó)ˆŒ	Ü¤§¡§¡°°1Ó 5× 8Ñ 8¼u¿{¹{Ð 8Ó KÓLˆŒÜ*ˆ�‰ÔÜ$ T§Y¡Y§]¡]Ó3ˆ�	‰	ŒØ�hÔÜ$?ˆD�I‰I�M‰MÖ!ä$3ˆD�I‰I�M‰MÖ!r:   c                ól   € V P                  V4      pV P                  V4      pV P                  V4      pV# rI   rÝ  r/  s   &&r7   r  ÚAnnotatedNestedModel.forward  rß  r:   rà  rp  r  s   @@r7   râ  râ    s   ù‡ € õ
4÷ò r:   râ  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )ÚAnnotatedSubNestedModeli  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú$AnnotatedSubNestedModel.__annotate__  s   ø€ ÷ ,ñ ,˜$ñ ,r:   c                ó^  <€ \         SV `  4        \        4       V n        \	        \        4       4      V n        \	        \        P                  P                  ^^4      P                  \        P                  R7      4      V n        \        V P                  n        \        V P                  n        R# r)  )r±  r8   r?  rØ  r   r  rÙ  rf   rÚ   rñ  r¿   r­   rÚ  r   rÊ  r+  s   &€r7   r8   Ú AnnotatedSubNestedModel.__init__  sm   ø€ Ü‰ÑÔÜ#Ó%ˆŒ	Ü Ô!4Ó!6Ó7ˆŒ	Ü¤§¡§¡°°1Ó 5× 8Ñ 8¼u¿{¹{Ð 8Ó KÓLˆŒÜ*ˆ�‰ÔÜ+ˆ�	‰	Ör:   c                ól   € V P                  V4      pV P                  V4      pV P                  V4      pV# rI   rÝ  r/  s   &&r7   r  ÚAnnotatedSubNestedModel.forward   rß  r:   rà  rp  r  s   @@r7   rè  rè    s   ù‡ € ÷,ó ,÷ò r:   rè  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )Ú AnnotatedCustomConfigNestedModeli'  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú-AnnotatedCustomConfigNestedModel.__annotate__(  s   ø€ ÷ 4ñ 4˜$ñ 4r:   c                óÆ  <€ \         SV `  4        \        4       V n        \	        4       V n        \        \        P                  P                  ^^4      P                  \        P                  R7      4      V n        \        V P                  n        \        V P
                  n        R\        P                  R\        P                   /p\#        \$        P&                  ! R/ VB \(        R7      pW P
                  P*                  n        \        V P
                  P*                  4      V P
                  n        \        V P
                  P,                  4      V P
                  n        R# )r¼   rï   rî   rá  rã  Nrh   )r±  r8   r?  rØ  r  rÙ  r   rf   rÚ   rñ  r¿   r­   rÚ  r   rÊ  ró   Úper_tensor_affiner   r	   rí  r   r*  rZ  )r6   Úcustom_optionsÚcustom_qconfigrÀ  s   &  €r7   r8   Ú)AnnotatedCustomConfigNestedModel.__init__(  sÝ   ø€ Ü‰ÑÔÜ#Ó%ˆŒ	Ü'Ó)ˆŒ	Ü¤§¡§¡°°1Ó 5× 8Ñ 8¼u¿{¹{Ð 8Ó KÓLˆŒÜ*ˆ�‰ÔÜ+ˆ�	‰	Ôà!¤5§<¡<°¼E×<SÑ<SÐTˆÜ Ü'×1Ò1ÑC°NÑCÜ*ô
ˆð !/�	‰	�‰Ôä$ T§Y¡Y§]¡]Ó3ˆ�	‰	ŒÜ$ T§Y¡Y§]¡]Ó3ˆ�	‰	Žr:   c                ól   € V P                  V4      pV P                  V4      pV P                  V4      pV# rI   rÝ  r/  s   &&r7   r  Ú(AnnotatedCustomConfigNestedModel.forward:  rß  r:   rà  rp  r  s   @@r7   rð  rð  '  s   ù‡ € ÷4ó 4÷$ò r:   rð  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )ÚQuantSubModeliA  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  ÚQuantSubModel.__annotate__B  s   ø€ ÷ +ñ +˜$ñ +r:   c                óL  <€ \         SV `  4        \        4       V n        \	        \        4       4      V n        \        V P                  n        \        P                  P                  ^^4      P                  \        P                  R7      V n        \        V P                  n        R# r)  )r±  r8   r?  rØ  r   r  rÙ  r   rÊ  rf   rÚ   rñ  r¿   r­   rÚ  r+  s   &€r7   r8   ÚQuantSubModel.__init__B  sh   ø€ Ü‰ÑÔÜ#Ó%ˆŒ	Ü Ô!4Ó!6Ó7ˆŒ	Ü+ˆ�	‰	ÔÜ—8‘8—?‘? 1 aÓ(×+Ñ+´%·+±+Ð+Ó>ˆŒÜ*ˆ�‰Ör:   c                ól   € V P                  V4      pV P                  V4      pV P                  V4      pV# rI   rÝ  r/  s   &&r7   r  ÚQuantSubModel.forwardJ  rß  r:   rà  rp  r  s   @@r7   rû  rû  A  s   ù‡ € ÷+ó +÷ò r:   rû  c                   óJ   a a€ ] tR tRt oV3R lV 3R lltR tR tRtVtV ;t	# )ÚInnerModuleiQ  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  ÚInnerModule.__annotate__R  s   ø€ ÷ %ñ %˜$ñ %r:   c                ó¼  <€ \         SV `  4        \        P                  P	                  ^^4      P                  \        P                  R7      V n        \        P                  P                  4       V n	        \        P                  P	                  ^^4      P                  \        P                  R7      V n
        \        P                  P                  4       V n        R# r)  )r±  r8   rf   rÚ   rñ  r¿   r­   r*  rá  Úrelu1rZ  Úrelu2r+  s   &€r7   r8   ÚInnerModule.__init__R  s€   ø€ Ü‰ÑÔÜ—8‘8—?‘? 1 aÓ(×+Ñ+´%·+±+Ð+Ó>ˆŒÜ—X‘X—]‘]“_ˆŒ
Ü—8‘8—?‘? 1 aÓ(×+Ñ+´%·+±+Ð+Ó>ˆŒÜ—X‘X—]‘]“_ˆŽ
r:   c           	     ó~   € V P                  V P                  V P                  V P                  V4      4      4      4      # rI   )r  rZ  r  r*  r/  s   &&r7   r  ÚInnerModule.forwardY  s+   € Ø�z‰z˜$Ÿ(™( 4§:¡:¨d¯h©h°q«kÓ#:Ó;Ó<Ð<r:   c                ó–  € . p\        V P                  4       4      p\        V4       F´  w  pw  rE\        V\        P
                  P                  4      '       g   K4  V\        V4      ^,
          8¼  d    Mk\        W#^,           ,          ^,          \        P
                  P                  4      '       g   K�  VP                  WBV^,           ,          ^ ,          .4       K¶  	  V P                  '       d.   \        P                  P                  P                  WRR7       R# \        P                  P                  P                  WRR7       R# )r£   Trã   N)r§  r×  r½   rO   rf   rÚ   rñ  rô   rá  r®   rò  rÝ  rÞ  ró  rô  )r6   Úfusable_layersr×  r´  Úcurrent_nameÚlayers   &     r7   rô  ÚInnerModule.fuse_modules\  sã   € ØˆÜ˜d×1Ñ1Ó3Ó4ˆÜ*3°NÖ*CÑ&ˆCÑ&�,Ü˜%¤§¡§¡×1Ô1Øœ#˜nÓ-°Õ1Ô1ÙÜ˜n°1­WÕ5°aÕ8¼%¿(¹(¿-¹-×HÔHØ"×)Ñ)¨<ÈÈaÍÕ9PÐQRÕ9SÐ*TÖUñ +Dð �=�=ˆ=Ü�H‰H×!Ñ!×2Ñ2°4ÐQUÐ2ÖVä�H‰H×!Ñ!×.Ñ.¨tÈTÐ.ÖRr:   )r*  rZ  r  r  )
rY   rZ   r[   r\   r8   r  rô  r_   r`   r  r  s   @@r7   r  r  Q  s    ù‡ € ÷%ó %ò=÷Sò Sr:   r  c                   óV   a a€ ] tR tRt oV3R lV 3R lltR tV3R lR ltRtVtV ;t	# )ÚFunctionalLinearil  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  ÚFunctionalLinear.__annotate__m  s   ø€ ÷ #ñ #˜$ñ #r:   c                ó�   <€ \         SV `  4        \        P                  ! R4      V n        \        P
                  ! ^4      V n        R# )r¼   N)r¼   r¼   )r±  r8   rf   r³  r!  rc  r"  r+  s   &€r7   r8   ÚFunctionalLinear.__init__m  s-   ø€ Ü‰ÑÔÜ—j’j Ó(ˆŒÜ—K’K “NˆŽ	r:   c                óX   € \         P                  ! WP                  V P                  4      # rI   )ÚFro  r!  r"  r/  s   &&r7   r  ÚFunctionalLinear.forwardr  s   € Ü�xŠx˜Ÿ;™;¨¯	©	Ó2Ð2r:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  r  u  r5  r:   c                ó2   € \         P                  ! ^^4      3# r¢   r7  rK   s   &r7   r8  Ú#FunctionalLinear.get_example_inputsu  r:  r:   )r"  r!  r;  r  s   @@r7   r  r  l  s#   ù‡ € ÷#ó #ò
3÷#÷ #ð #r:   r  c                   óV   a a€ ] tR tRt oV3R lV 3R lltR tV3R lR ltRtVtV ;t	# )Ú SingleLayerFunctionalLinearModeliy  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú-SingleLayerFunctionalLinearModel.__annotate__z  s   ø€ ÷ *ñ *˜$ñ *r:   c                óB   <€ \         SV `  4        \        4       V n        R # rI   )r±  r8   r  Úlinear1r+  s   &€r7   r8   Ú)SingleLayerFunctionalLinearModel.__init__z  s   ø€ Ü‰ÑÔÜ'Ó)ˆŽr:   c                ó(   € V P                  V4      pV# rI   ©r"  r/  s   &&r7   r  Ú(SingleLayerFunctionalLinearModel.forward~  s   € Ø�L‰L˜‹OˆØˆr:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  r   ‚  ó   ø€ ÷ 1ñ 1¡E©#¨s¨(¥Oñ 1r:   c                ó6   € V P                   P                  4       # rI   ©r"  r8  rK   s   &r7   r8  Ú3SingleLayerFunctionalLinearModel.get_example_inputs‚  ó   € Ø�|‰|×.Ñ.Ó0Ð0r:   r%  r;  r  s   @@r7   r  r  y  s#   ù‡ € ÷*ó *ò÷1÷ 1ð 1r:   r  c                   óV   a a€ ] tR tRt oV3R lV 3R lltR tV3R lR ltRtVtV ;t	# )ÚTwoLayerFunctionalLinearModeli†  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú*TwoLayerFunctionalLinearModel.__annotate__‡  ó   ø€ ÷ *ñ *˜$ñ *r:   c                ó`   <€ \         SV `  4        \        4       V n        \        4       V n        R # rI   ©r±  r8   r  r"  Úlinear2r+  s   &€r7   r8   Ú&TwoLayerFunctionalLinearModel.__init__‡  ó"   ø€ Ü‰ÑÔÜ'Ó)ˆŒÜ'Ó)ˆŽr:   c                óJ   € V P                  V4      pV P                  V4      pV# rI   ©r"  r4  r/  s   &&r7   r  Ú%TwoLayerFunctionalLinearModel.forwardŒ  s!   € Ø�L‰L˜‹OˆØ�L‰L˜‹OˆØˆr:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  r0  ‘  r(  r:   c                ó6   € V P                   P                  4       # rI   r*  rK   s   &r7   r8  Ú0TwoLayerFunctionalLinearModel.get_example_inputs‘  r,  r:   r8  r;  r  s   @@r7   r.  r.  †  s#   ù‡ € ÷*ó *ò
÷
1÷ 1ð 1r:   r.  c                   óV   a a€ ] tR tRt oV3R lV 3R lltR tV3R lR ltRtVtV ;t	# )ÚFunctionalLinearAddModeli•  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú%FunctionalLinearAddModel.__annotate__–  r1  r:   c                ó`   <€ \         SV `  4        \        4       V n        \        4       V n        R # rI   r3  r+  s   &€r7   r8   Ú!FunctionalLinearAddModel.__init__–  r6  r:   c                óx   € V P                  V4      p\        P                  ! V^4      pV P                  V4      pV# r^  )r"  rf   r”  r4  r/  s   &&r7   r  Ú FunctionalLinearAddModel.forward›  s0   € Ø�L‰L˜‹OˆÜ�IŠI�a˜‹OˆØ�L‰L˜‹OˆØˆr:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  r@  ¡  r(  r:   c                ó6   € V P                   P                  4       # rI   r*  rK   s   &r7   r8  Ú+FunctionalLinearAddModel.get_example_inputs¡  r,  r:   r8  r;  r  s   @@r7   r>  r>  •  s#   ù‡ € ÷*ó *ò
÷1÷ 1ð 1r:   r>  c                   óV   a a€ ] tR tRt oV3R lV 3R lltR tV3R lR ltRtVtV ;t	# )ÚFunctionalLinearReluModeli¥  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú&FunctionalLinearReluModel.__annotate__¦  s   ø€ ÷ )ñ )˜$ñ )r:   c                óB   <€ \         SV `  4        \        4       V n        R # rI   )r±  r8   r  ro  r+  s   &€r7   r8   Ú"FunctionalLinearReluModel.__init__¦  s   ø€ Ü‰ÑÔÜ&Ó(ˆŽr:   c                óT   € V P                  V4      p\        P                  ! V4      pV# rI   )ro  r  rw  r/  s   &&r7   r  Ú!FunctionalLinearReluModel.forwardª  s!   € Ø�K‰K˜‹NˆÜ�FŠF�1‹IˆØˆr:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  rK  ¯  s   ø€ ÷ 0ñ 0¡E©#¨s¨(¥Oñ 0r:   c                ó6   € V P                   P                  4       # rI   )ro  r8  rK   s   &r7   r8  Ú,FunctionalLinearReluModel.get_example_inputs¯  s   € Ø�{‰{×-Ñ-Ó/Ð/r:   )ro  r;  r  s   @@r7   rI  rI  ¥  s#   ù‡ € ÷)ó )ò÷
0÷ 0ð 0r:   rI  c                   óV   a a€ ] tR tRt oV3R lV 3R lltR tV3R lR ltRtVtV ;t	# )ÚFunctionalLinearReluLinearModeli³  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú,FunctionalLinearReluLinearModel.__annotate__´  rÞ  r:   c                ó”   <€ \         SV `  4        \        4       V n        \        P
                  ! 4       V n        \        4       V n        R # rI   )r±  r8   r  r"  rÚ   rá  rw  r4  r+  s   &€r7   r8   Ú(FunctionalLinearReluLinearModel.__init__´  s/   ø€ Ü‰ÑÔÜ'Ó)ˆŒÜ—G’G“IˆŒ	Ü'Ó)ˆŽr:   c                ól   € V P                  V4      pV P                  V4      pV P                  V4      pV# rI   )r"  rw  r4  r/  s   &&r7   r  Ú'FunctionalLinearReluLinearModel.forwardº  s.   € Ø�L‰L˜‹OˆØ�I‰I�a‹LˆØ�L‰L˜‹OˆØˆr:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  rV  À  r(  r:   c                ó6   € V P                   P                  4       # rI   r*  rK   s   &r7   r8  Ú2FunctionalLinearReluLinearModel.get_example_inputsÀ  r,  r:   )r"  r4  rw  r;  r  s   @@r7   rT  rT  ³  s#   ù‡ € ÷*ó *ò÷1÷ 1ð 1r:   rT  c                   óV   a a€ ] tR tRt oV3R lV 3R lltR tV3R lR ltRtVtV ;t	# )ÚFunctionalConv2diÄ  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  ÚFunctionalConv2d.__annotate__Å  s   ø€ ÷ ñ ˜$ñ r:   c                óÎ   <€ \         SV `  4        \        P                  ! ^^^^4      V n        \        P                  ! ^4      V n        RV n        RV n        RV n        ^V n	        R# )r�  N©r£   r£   )r“   r“   )
r±  r8   rf   r³  r!  r"  ÚstrideÚpaddingÚdilationrþ   r+  s   &€r7   r8   ÚFunctionalConv2d.__init__Å  sO   ø€ Ü‰ÑÔÜ—j’j  A q¨!Ó,ˆŒÜ—J’J˜q“MˆŒ	ØˆŒØˆŒØˆŒØˆŽr:   c           	     ó²   € \         P                  ! VV P                  V P                  V P                  V P
                  V P                  V P                  4      # rI   )r  Úconv2dr!  r"  rd  re  rf  rþ   r/  s   &&r7   r  ÚFunctionalConv2d.forwardÎ  s@   € Ü�xŠxØØ�K‰KØ�I‰IØ�K‰KØ�L‰LØ�M‰MØ�K‰Kó
ð 	
r:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  ra  Ù  r—  r:   c                ó6   € \         P                  ! ^^^^4      3# r¢   r7  rK   s   &r7   r8  Ú#FunctionalConv2d.get_example_inputsÙ  rš  r:   )r"  rf  rþ   re  rd  r!  r;  r  s   @@r7   r_  r_  Ä  s#   ù‡ € ÷ó ò	
÷)÷ )ð )r:   r_  c                   óV   a a€ ] tR tRt oV3R lV 3R lltR tV3R lR ltRtVtV ;t	# )ÚSingleLayerFunctionalConvModeliÝ  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú+SingleLayerFunctionalConvModel.__annotate__Þ  s   ø€ ÷ (ñ (˜$ñ (r:   c                óB   <€ \         SV `  4        \        4       V n        R # rI   )r±  r8   r_  r   r+  s   &€r7   r8   Ú'SingleLayerFunctionalConvModel.__init__Þ  s   ø€ Ü‰ÑÔÜ%Ó'ˆŽ
r:   c                ó(   € V P                  V4      pV# rI   ©r   r/  s   &&r7   r  Ú&SingleLayerFunctionalConvModel.forwardâ  s   € Ø�J‰J�q‹MˆØˆr:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  rq  æ  ó   ø€ ÷ /ñ /¡E©#¨s¨(¥Oñ /r:   c                ó6   € V P                   P                  4       # rI   ©r   r8  rK   s   &r7   r8  Ú1SingleLayerFunctionalConvModel.get_example_inputsæ  ó   € Ø�z‰z×,Ñ,Ó.Ð.r:   ru  r;  r  s   @@r7   ro  ro  Ý  s#   ù‡ € ÷(ó (ò÷/÷ /ð /r:   ro  c                   óV   a a€ ] tR tRt oV3R lV 3R lltR tV3R lR ltRtVtV ;t	# )ÚTwoLayerFunctionalConvModeliê  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú(TwoLayerFunctionalConvModel.__annotate__ë  s   ø€ ÷ (ñ (˜$ñ (r:   c                ó`   <€ \         SV `  4        \        4       V n        \        4       V n        R # rI   )r±  r8   r_  r   r  r+  s   &€r7   r8   Ú$TwoLayerFunctionalConvModel.__init__ë  s"   ø€ Ü‰ÑÔÜ%Ó'ˆŒ
Ü%Ó'ˆŽ
r:   c                óJ   € V P                  V4      pV P                  V4      pV# rI   r  r/  s   &&r7   r  Ú#TwoLayerFunctionalConvModel.forwardð  r  r:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  r€  õ  rx  r:   c                ó6   € V P                   P                  4       # rI   rz  rK   s   &r7   r8  Ú.TwoLayerFunctionalConvModel.get_example_inputsõ  r|  r:   r  r;  r  s   @@r7   r~  r~  ê  s#   ù‡ € ÷(ó (ò
÷
/÷ /ð /r:   r~  c                   óV   a a€ ] tR tRt oV3R lV 3R lltR tV3R lR ltRtVtV ;t	# )ÚFunctionalConvReluModeliù  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú$FunctionalConvReluModel.__annotate__ú  s   ø€ ÷ 'ñ '˜$ñ 'r:   c                óB   <€ \         SV `  4        \        4       V n        R # rI   )r±  r8   r_  r�  r+  s   &€r7   r8   Ú FunctionalConvReluModel.__init__ú  s   ø€ Ü‰ÑÔÜ$Ó&ˆŽ	r:   c                óT   € V P                  V4      p\        P                  ! V4      pV# rI   )r�  r  rw  r/  s   &&r7   r  ÚFunctionalConvReluModel.forwardþ  s!   € Ø�I‰I�a‹LˆÜ�FŠF�1‹IˆØˆr:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  r‹  	  r"  r:   c                ó6   € V P                   P                  4       # rI   )r�  r8  rK   s   &r7   r8  Ú*FunctionalConvReluModel.get_example_inputs	  r%  r:   r“  r;  r  s   @@r7   r‰  r‰  ù  s#   ù‡ € ÷'ó 'ò÷
.÷ .ð .r:   r‰  c                   óV   a a€ ] tR tRt oV3R lV 3R lltR tV3R lR ltRtVtV ;t	# )ÚFunctionalConvReluConvModeli	  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú(FunctionalConvReluConvModel.__annotate__	  s   ø€ ÷ (ñ (˜$ñ (r:   c                ó”   <€ \         SV `  4        \        4       V n        \        P
                  ! 4       V n        \        4       V n        R # rI   )r±  r8   r_  r   rÚ   rá  rw  r  r+  s   &€r7   r8   Ú$FunctionalConvReluConvModel.__init__	  s/   ø€ Ü‰ÑÔÜ%Ó'ˆŒ
Ü—G’G“IˆŒ	Ü%Ó'ˆŽ
r:   c                ól   € V P                  V4      pV P                  V4      pV P                  V4      pV# rI   )r   rw  r  r/  s   &&r7   r  Ú#FunctionalConvReluConvModel.forward	  s.   € Ø�J‰J�q‹MˆØ�I‰I�a‹LˆØ�J‰J�q‹MˆØˆr:   c                ó4   <€ V ^8„  d   QhRS[ S[R3,          /# r3  r4  )r�   rb   s   "€r7   r€  r–  	  rx  r:   c                ó6   € V P                   P                  4       # rI   rz  rK   s   &r7   r8  Ú.FunctionalConvReluConvModel.get_example_inputs	  r|  r:   )r   r  rw  r;  r  s   @@r7   r”  r”  	  s#   ù‡ € ÷(ó (ò÷/÷ /ð /r:   r”  c                   óN   a a€ ] tR tRt oRtV3R lV 3R lltR tR tRtVt	V ;t
# )ÚSkipQuantModeli	  úNWe can skip quantization by explicitly
setting qconfig of a submodule to None
c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  ÚSkipQuantModel.__annotate__	  s   ø€ ÷ >ñ >˜$ñ >r:   c                óÈ   <€ \         SV `  4        \        4       V n        \        P
                  P                  ^^4      P                  \        P                  R7      V n	        R# r)  )
r±  r8   r  r{  rf   rÚ   rñ  r¿   r­   r  r+  s   &€r7   r8   ÚSkipQuantModel.__init__	  s?   ø€ Ü‰ÑÔÜ“=ˆŒÜ—(‘(—/‘/ ! QÓ'×*Ñ*´·±Ð*Ó=ˆŽr:   c                óB   € V P                  V P                  V4      4      # rI   ©r  r{  r/  s   &&r7   r  ÚSkipQuantModel.forward"	  ó   € Ø�w‰w�t—x‘x “{Ó#Ð#r:   c                ó:   € V P                   P                  4        R # rI   )r{  rô  rK   s   &r7   rô  ÚSkipQuantModel.fuse_modules%	  s   € Ø�‰×ÑÖr:   r¦  ©rY   rZ   r[   r\   r]   r8   r  rô  r_   r`   r  r  s   @@r7   rŸ  rŸ  	  s#   ù‡ € ñ÷>ó >ò
$÷ ò  r:   rŸ  c                   óB   a a€ ] tR tRt oRtV 3R ltR tR tRtVt	V ;t
# )ÚAnnotatedSkipQuantModeli)	  r   c                óX  <€ \         SV `  4        \        P                  P                  P                  V4      V n        \        \        4       4      V n	        \        P                  P                  ^^4      P                  \        P                  R7      V n        RV P                  n        R# r)  )r±  r8   rf   rÝ  rÞ  r   rÊ  r   r  r{  rÚ   rñ  r¿   r­   r  r?  s   &&€r7   r8   Ú AnnotatedSkipQuantModel.__init__.	  sk   ø€ Ü‰ÑÔÜ—x‘x×,Ñ,×@Ñ@ÀÓIˆŒÜ¤£Ó.ˆŒÜ—(‘(—/‘/ ! QÓ'×*Ñ*´·±Ð*Ó=ˆŒàˆ�‰Žr:   c                óB   € V P                  V P                  V4      4      # rI   r¦  r/  s   &&r7   r  ÚAnnotatedSkipQuantModel.forward6	  r¨  r:   c                óN   € V P                   P                  P                  4        R # rI   )r{  rå   rô  rK   s   &r7   rô  Ú$AnnotatedSkipQuantModel.fuse_modules9	  s   € Ø�‰�‰×$Ñ$Ö&r:   )r  rÊ  r{  r«  r  s   @@r7   r­  r­  )	  s   ù‡ € ñõò$÷'ò 'r:   r­  c                   óH   a a€ ] tR tRt oRtV3R lV 3R lltR tRtVtV ;t	# )ÚQuantStubModeli=	  ú=A Module with manually inserted `QuantStub` and `DeQuantStub`c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  ÚQuantStubModel.__annotate__@	  s   ø€ ÷ >ñ >˜$ñ >r:   c                óB  <€ \         SV `  4        \        P                  P                  P                  R 4      V n        \        4       V n        \        4       V n
        \        P                  P                  ^^4      P                  \        P                  R7      V n        R# )r6  rï   N)r±  r8   rf   rÝ  rÞ  r   rÊ  r   r«  r   rÃ  rÚ   rñ  r¿   r­   r  r+  s   &€r7   r8   ÚQuantStubModel.__init__@	  sd   ø€ Ü‰ÑÔÜ—x‘x×,Ñ,×@Ñ@ÀÓKˆŒÜ“[ˆŒ
Ü"“}ˆŒÜ—(‘(—/‘/ ! QÓ'×*Ñ*´·±Ð*Ó=ˆŽr:   c                óh   € V P                  V4      pV P                  V4      pV P                  V4      # rI   )r«  r  rÃ  r/  s   &&r7   r  ÚQuantStubModel.forwardG	  s*   € Ø�J‰J�q‹MˆØ�G‰G�A‹JˆØ�|‰|˜A‹Ðr:   )rÃ  r  rÊ  r«  ©
rY   rZ   r[   r\   r]   r8   r  r_   r`   r  r  s   @@r7   rµ  rµ  =	  s   ù‡ € ÙH÷>ó >÷ò r:   rµ  c                   ó<   a a€ ] tR tRt oRtV 3R ltR tRtVtV ;t	# )ÚManualLinearQATModeliM	  r¶  c                óÈ  <€ \         SV `  4        \        P                  P                  P                  V4      V n        \        4       V n        \        4       V n
        \        P                  P                  ^^4      P                  \        P                  R7      V n        \        P                  P                  ^^
4      P                  \        P                  R7      V n        R# r)  )r±  r8   rf   rÝ  rÞ  r   rÊ  r   r«  r   rÃ  rÚ   rñ  r¿   r­   r*  rZ  r?  s   &&€r7   r8   ÚManualLinearQATModel.__init__P	  sŒ   ø€ Ü‰ÑÔÜ—x‘x×,Ñ,×DÑDÀWÓMˆŒÜ“[ˆŒ
Ü"“}ˆŒÜ—8‘8—?‘? 1 aÓ(×+Ñ+´%·+±+Ð+Ó>ˆŒÜ—8‘8—?‘? 1 bÓ)×,Ñ,´5·;±;Ð,Ó?ˆŽr:   c                óŠ   € V P                  V4      pV P                  V4      pV P                  V4      pV P                  V4      # rI   )r«  r*  rZ  rÃ  r/  s   &&r7   r  ÚManualLinearQATModel.forwardX	  s7   € Ø�J‰J�q‹MˆØ�H‰H�Q‹KˆØ�H‰H�Q‹KˆØ�|‰|˜A‹Ðr:   )rÃ  r*  rZ  rÊ  r«  r½  r  s   @@r7   r¿  r¿  M	  s   ù‡ € ÙHõ@÷ò r:   r¿  c                   ó<   a a€ ] tR tRt oRtV 3R ltR tRtVtV ;t	# )ÚManualDropoutQATModeli_	  r¶  c                óŠ  <€ \         SV `  4        \        P                  P                  P                  V4      V n        \        4       V n        \        4       V n
        \        P                  P                  ^^4      P                  \        P                  R7      V n        \        P                  P!                  R4      V n        R# )r¼   rï   ç      à?N)r±  r8   rf   rÝ  rÞ  r   rÊ  r   r«  r   rÃ  rÚ   rñ  r¿   r­   r*  rá  Údropoutr?  s   &&€r7   r8   ÚManualDropoutQATModel.__init__b	  sz   ø€ Ü‰ÑÔÜ—x‘x×,Ñ,×DÑDÀWÓMˆŒÜ“[ˆŒ
Ü"“}ˆŒÜ—8‘8—?‘? 1 aÓ(×+Ñ+´%·+±+Ð+Ó>ˆŒÜ—x‘x×'Ñ'¨Ó,ˆŽr:   c                óŠ   € V P                  V4      pV P                  V4      pV P                  V4      pV P                  V4      # rI   )r«  r*  rÈ  rÃ  r/  s   &&r7   r  ÚManualDropoutQATModel.forwardj	  s7   € Ø�J‰J�q‹MˆØ�H‰H�Q‹KˆØ�L‰L˜‹OˆØ�|‰|˜A‹Ðr:   )rÃ  rÈ  r*  rÊ  r«  r½  r  s   @@r7   rÅ  rÅ  _	  s   ù‡ € ÙHõ-÷ò r:   rÅ  c                   ó@   a a€ ] tR tRt oRtRV 3R lltR tRtVtV ;t	# )ÚManualLinearDynamicQATModeliq	  z,A Module that uses a dynamic QAT by default.c                óZ  <€ \         SV `  4        T;'       g    \        V n        \        P
                  P                  ^^4      P                  \        P                  R7      V n	        \        P
                  P                  ^^
4      P                  \        P                  R7      V n
        R# r)  )r±  r8   r   rÊ  rf   rÚ   rñ  r¿   r­   r*  rZ  ©r6   rÊ  rÀ  s   &&€r7   r8   Ú$ManualLinearDynamicQATModel.__init__t	  sn   ø€ Ü‰ÑÔØ×=Ð=Ô"=ˆŒÜ—8‘8—?‘? 1 aÓ(×+Ñ+´%·+±+Ð+Ó>ˆŒÜ—8‘8—?‘? 1 bÓ)×,Ñ,´5·;±;Ð,Ó?ˆŽr:   c                óJ   € V P                  V4      pV P                  V4      pV# rI   rc  r/  s   &&r7   r  Ú#ManualLinearDynamicQATModel.forwardz	  r  r:   )r*  rZ  rÊ  rI   r½  r  s   @@r7   rÍ  rÍ  q	  s   ù‡ € Ù7÷@÷ò r:   rÍ  c                   ó@   a a€ ] tR tRt oRtRV 3R lltR tRtVtV ;t	# )ÚManualConvLinearQATModeli€	  zhA module with manually inserted `QuantStub` and `DeQuantStub`
and contains both linear and conv modules
c                óf  <€ \         SV `  4        V'       d   TM(\        P                  P                  P                  R 4      V n        \        4       V n        \        4       V n
        \        P                  P                  ^^^R7      P                  \        P                  R7      V n        \        P                  P!                  ^@^
4      P                  \        P                  R7      V n        \        P                  P!                  ^
^
4      P                  \        P                  R7      V n        R# )r6  )rÿ   rï   N)r±  r8   rf   rÝ  rÞ  r   rÊ  r   r«  r   rÃ  rÚ   r�  r¿   r­   r�  rñ  r*  rZ  rÏ  s   &&€r7   r8   Ú!ManualConvLinearQATModel.__init__…	  sÇ   ø€ Ü‰ÑÔ÷ ñ ä—‘×&Ñ&×>Ñ>¸yÓIð 	Œô
 “[ˆŒ
Ü"“}ˆŒÜ—H‘H—O‘O A q°a�OÓ8×;Ñ;Ä%Ç+Á+Ð;ÓNˆŒ	Ü—8‘8—?‘? 2 rÓ*×-Ñ-´E·K±KÐ-Ó@ˆŒÜ—8‘8—?‘? 2 rÓ*×-Ñ-´E·K±KÐ-Ó@ˆŽr:   c                óì   € V P                  V4      pV P                  V4      pVP                  R^@4      P                  4       pV P	                  V4      pV P                  V4      pV P                  V4      # rÐ  )r«  r�  r«   rv  r*  rZ  rÃ  r/  s   &&r7   r  Ú ManualConvLinearQATModel.forward’	  s\   € Ø�J‰J�q‹MˆØ�I‰I�a‹LˆØ�F‰F�2�r‹N×%Ñ%Ó'ˆØ�H‰H�Q‹KˆØ�H‰H�Q‹KˆØ�|‰|˜A‹Ðr:   )r�  rÃ  r*  rZ  rÊ  r«  rI   r½  r  s   @@r7   rÔ  rÔ  €	  s   ù‡ € ñ÷A÷ò r:   rÔ  c                   óB   a a€ ] tR tRt oRtV3R lV 3R lltRtVtV ;t# )ÚManualConvLinearSymmQATModeli›	  z`Same as ManualConvLinearQATModule but with Symmetric Quantization.
Supported only with qnnpack.
c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú)ManualConvLinearSymmQATModel.__annotate__ 	  s   ø€ ÷ @ñ @˜$ñ @r:   c                ó.   <€ \         SV `  \        4       R # rI   )r±  r8   r   r+  s   &€r7   r8   Ú%ManualConvLinearSymmQATModel.__init__ 	  s   ø€ Ü‰ÑÔ>Ö?r:   rh   )	rY   rZ   r[   r\   r]   r8   r_   r`   r  r  s   @@r7   rÚ  rÚ  ›	  s   ù‡ € ñ÷@÷ @ó @r:   rÚ  c                   óT   a a€ ] tR tRt oV3R lV 3R lltRV3R lR lltRtVtV ;t# )ÚManualEmbeddingBagLineari¤	  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú%ManualEmbeddingBagLinear.__annotate__¥	  s   ø€ ÷ :ñ :˜$ñ :r:   c                óZ  <€ \         SV `  4        \        P                  ! ^
^RR7      V n        \
        V P                  n        \        4       V n        \        4       V n
        \        P                  ! ^^4      P                  \        P                  R7      V n        \!        R4      V n        R# )é
   r}   )rÚ  rÛ  rÝ  rï   r6  N)r±  r8   rÚ   rê  Úembr   rÊ  r   r«  r   rÃ  rñ  r¿   rf   r­   ro  r   r+  s   &€r7   r8   Ú!ManualEmbeddingBagLinear.__init__¥	  sp   ø€ Ü‰ÑÔÜ—?’?°"ÀBÈUÔSˆŒÜ8ˆ�‰ÔÜ“[ˆŒ
Ü"“}ˆŒÜ—i’i  AÓ&×)Ñ)´·±Ð)Ó<ˆŒÜ.¨yÓ9ˆŽr:   c                ó„   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  R,          /# )rl  r  rò  NÚper_sample_weights©rf   r¦  )r�   rb   s   "€r7   r€  râ  ®	  s?   ø€ ÷ 	ñ 	á�|‰|ð	ñ —‘ Õ$ð	ñ "ŸL™L¨4Õ/ñ		r:   c                óŒ   € V P                  WV4      pV P                  V4      pV P                  V4      pV P                  V4      # rI   )rå  r«  ro  rÃ  )r6   r  rò  rè  r   s   &&&& r7   r  Ú ManualEmbeddingBagLinear.forward®	  s=   € ð �H‰H�UÐ%7Ó8ˆØ�J‰J�q‹MˆØ�K‰K˜‹NˆØ�|‰|˜A‹Ðr:   )rÃ  rå  ro  rÊ  r«  r  rp  r  s   @@r7   rà  rà  ¤	  s   ù‡ € ÷:ó :÷	÷ 	ò 	r:   rà  c                   óT   a a€ ] tR tRt oRtV3R lV 3R lltV3R lR ltRtVtV ;t	# )ÚDeFusedEmbeddingBagLineariº	  zþA module to simulate QAT embedding bag with a linear layer,
this module uses a separate embedding and bagging op, similar
to that which is described in the EmbeddingBag documentation.

https://pytorch.org/docs/stable/generated/torch.nn.EmbeddingBag.html
c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú&DeFusedEmbeddingBagLinear.__annotate__Â	  rÂ  r:   c                ó‚  <€ \         SV `  4        \        P                  ! ^
^R7      V n        \
        V P                  n        \        P                  V n	        \        4       V n        \        4       V n        \        P                  ! ^^4      P                  \        P                   R7      V n        \%        R4      V n        R# )rä  rà  rï   r6  N)r±  r8   rÚ   rë  rå  r   rÊ  rf   r}   Ú
bagging_opr   r«  r   rÃ  rñ  r¿   r­   ro  r   r+  s   &€r7   r8   Ú"DeFusedEmbeddingBagLinear.__init__Â	  sy   ø€ Ü‰ÑÔÜ—<’<¨rÀÔDˆŒÜ8ˆ�‰ÔÜŸ)™)ˆŒÜ“[ˆŒ
Ü"“}ˆŒÜ—i’i  AÓ&×)Ñ)´·±Ð)Ó<ˆŒÜ.¨yÓ9ˆŽr:   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )rl  r  r  ré  )r�   rb   s   "€r7   r€  rï  Ì	  s#   ø€ ÷ ñ ™UŸ\™\ð ©e¯l©lñ r:   c                ó¬   € V P                  V P                  V4      ^R7      pV P                  V4      pV P                  V4      pV P	                  V4      # ©r£   rœ  )rñ  rå  r«  ro  rÃ  )r6   r  r   s   && r7   r  Ú!DeFusedEmbeddingBagLinear.forwardÌ	  sD   € Ø�O‰O˜DŸH™H U›O°ˆOÓ3ˆØ�J‰J�q‹MˆØ�K‰K˜‹NˆØ�|‰|˜A‹Ðr:   )rñ  rÃ  rå  ro  rÊ  r«  r½  r  s   @@r7   rí  rí  º	  s#   ù‡ € ñ÷:ó :÷÷ ð r:   rí  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )ÚSubModelForFusioniÓ	  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  ÚSubModelForFusion.__annotate__Ô	  s   ø€ ÷ :ñ :˜$ñ :r:   c                ó  <€ \         SV `  4        \        P                  ! ^^^RR7      P	                  \
        P                  R7      V n        \        P                  ! ^4      P	                  \
        P                  R7      V n	        R# )rl  NrŽ  rï   )
r±  r8   rÚ   r�  r¿   rf   r­   r�  rÄ  rÅ  r+  s   &€r7   r8   ÚSubModelForFusion.__init__Ô	  sX   ø€ Ü‰ÑÔÜ—I’I˜a  A¨DÔ1×4Ñ4¼5¿;¹;Ð4ÓGˆŒ	Ü—.’. Ó#×&Ñ&¬U¯[©[Ð&Ó9ˆŽr:   c                óJ   € V P                  V4      pV P                  V4      pV# rI   rÈ  r/  s   &&r7   r  ÚSubModelForFusion.forwardÙ	  rÊ  r:   rÎ  rp  r  s   @@r7   rø  rø  Ó	  s   ù‡ € ÷:ó :÷
ò r:   rø  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )ÚSubModelWithoutFusioniß	  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú"SubModelWithoutFusion.__annotate__à	  s   ø€ ÷ Añ A˜$ñ Ar:   c                ó  <€ \         SV `  4        \        P                  ! ^^^RR7      P	                  \
        P                  R7      V n        \        P                  ! RR7      P	                  \
        P                  R7      V n	        R# )rl  NrŽ  rï   Frã   )
r±  r8   rÚ   r�  r¿   rf   r­   r�  rá  rw  r+  s   &€r7   r8   ÚSubModelWithoutFusion.__init__à	  sX   ø€ Ü‰ÑÔÜ—I’I˜a  A¨DÔ1×4Ñ4¼5¿;¹;Ð4ÓGˆŒ	Ü—G’G EÔ*×-Ñ-´E·K±KÐ-Ó@ˆŽ	r:   c                óB   € V P                  V P                  V4      4      # rI   )rw  r�  r/  s   &&r7   r  ÚSubModelWithoutFusion.forwardå	  s   € Ø�y‰y˜Ÿ™ 1›Ó&Ð&r:   )r�  rw  rp  r  s   @@r7   r   r   ß	  s   ù‡ € ÷Aó A÷
'ò 'r:   r   c                   ó8   a a€ ] tR tRt oV 3R ltR tRtVtV ;t# )ÚModelForFusionié	  c                óð  <€ \         SV `  4        \        P                  ! ^^^RR7      P	                  \
        P                  R7      V n        \        P                  ! ^4      P	                  \
        P                  R7      V n	        \        P                  ! RR7      P	                  \
        P                  R7      V n        \        4       V n        \        4       V n        \        P                   ! ^$^
4      P	                  \
        P                  R7      V n        \%        4       V n        \)        4       V n        Wn        \        P.                  ! ^^RRR7      P	                  \
        P                  R7      V n        \        P                  ! RR7      P	                  \
        P                  R7      V n        \        P4                  ! ^4      P	                  \
        P                  R7      V n        \        P                  ! RR7      P	                  \
        P                  R7      V n        \        P:                  ! ^^^4      P	                  \
        P                  R7      V n        \        P>                  ! ^4      P	                  \
        P                  R7      V n         \        P                  ! RR7      P	                  \
        P                  R7      V n!        RV P                  n        RV P"                  n        R# )r�  NrŽ  rï   Trã   F)r£   r£   r£   )"r±  r8   rÚ   r�  r¿   rf   r­   r   rÄ  Úbn1rá  r  rø  rØ  r   rÙ  rñ  r  r   r«  r   rÃ  rÊ  ÚConv3dr  r  ÚBatchNorm3dÚbn2Úrelu3ÚConv1dÚconv3rp  Úbn3Úrelu4rÏ  s   &&€r7   r8   ÚModelForFusion.__init__ê	  sØ  ø€ Ü‰ÑÔÜ—Y’Y˜q ! Q¨TÔ2×5Ñ5¼E¿K¹KÐ5ÓHˆŒ
Ü—>’> !Ó$×'Ñ'¬e¯k©kÐ'Ó:ˆŒÜ—W’W TÔ*×-Ñ-´E·K±KÐ-Ó@ˆŒ
Ü%Ó'ˆŒ	Ü)Ó+ˆŒ	Ü—)’)˜B Ó#×&Ñ&¬U¯[©[Ð&Ó9ˆŒÜ“[ˆŒ
Ü"“}ˆŒØŒÜ—Y’Y˜q ! Y°TÔ:×=Ñ=ÄEÇKÁKÐ=ÓPˆŒ
Ü—W’W UÔ+×.Ñ.´U·[±[Ð.ÓAˆŒ
Ü—>’> !Ó$×'Ñ'¬e¯k©kÐ'Ó:ˆŒÜ—W’W TÔ*×-Ñ-´E·K±KÐ-Ó@ˆŒ
Ü—Y’Y˜q ! QÓ'×*Ñ*´·±Ð*Ó=ˆŒ
Ü—>’> !Ó$×'Ñ'¬e¯k©kÐ'Ó:ˆŒÜ—W’W TÔ*×-Ñ-´E·K±KÐ-Ó@ˆŒ
à ˆ�	‰	ÔØˆ�‰Žr:   c                óÌ  € VP                  ^4      pV P                  V4      pV P                  V4      pV P                  V4      pV P	                  V4      pVP                  ^4      pVP                  ^4      pV P                  V4      pV P                  V4      pV P                  V4      pV P                  V4      pV P                  V4      pV P                  V4      pVP                  R^$4      P                  4       pV P                  V4      pV P                  V4      pV P!                  V4      pV P#                  V4      pV P%                  V4      pV P                  V4      pV# ©rl  r¦   )r–  r«  r  r  r  rŸ  r   r
  r  rØ  rÃ  rÙ  rö   rv  r  r  r  r  r  ©r6   r   Úys   && r7   r  ÚModelForFusion.forward 
  s  € Ø�I‰I�a‹LˆØ�J‰J�q‹MˆØ�J‰J�q‹MˆØ�H‰H�Q‹KˆØ�J‰J�q‹MˆØ�K‰K˜‹NˆØ�K‰K˜‹NˆØ�J‰J�q‹MˆØ�H‰H�Q‹KˆØ�J‰J�q‹MˆØ�I‰I�a‹LˆØ�L‰L˜‹OˆØ�I‰I�a‹LˆØ�I‰I�b˜"Ó×(Ñ(Ó*ˆØ�G‰G�A‹JˆØ�J‰J�q‹MˆØ�J‰J�q‹MˆØ�H‰H�Q‹KˆØ�J‰J�q‹MˆØ�L‰L˜‹OˆØˆr:   )r
  r  r  r   r  r  rÃ  r  rÊ  r«  r  r  r  r  rØ  rÙ  rp  r  s   @@r7   r  r  é	  s   ù‡ € õ÷,ò r:   r  c                   ó>   a a€ ] tR tRt oV3R lV 3R lltRtVtV ;t# )Ú
ConvBNReLUi
  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  ÚConvBNReLU.__annotate__
  s   ø€ ÷ 
ñ 
˜$ñ 
r:   c           
     ó®   <€ \         SV `  \        P                  ! ^^^^RR7      \        P                  ! ^4      \        P
                  ! RR7      4       R# )r�  FrŽ  rã   N)r±  r8   rÚ   r�  rÄ  rá  r+  s   &€r7   r8   ÚConvBNReLU.__init__
  s;   ø€ Ü‰ÑÜ�IŠI�a˜˜A˜q uÔ-¬r¯~ª~¸aÓ/@Ä"Ç'Â'ÐRWÔBXö	
r:   rh   )rY   rZ   r[   r\   r8   r_   r`   r  r  s   @@r7   r  r  
  s   ù‡ € ÷
÷ 
ó 
r:   r  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )ÚModelWithSequentialFusioni
  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú&ModelWithSequentialFusion.__annotate__ 
  s   ø€ ÷ 
%ñ 
%˜$ñ 
%r:   c                ó  <€ \         SV `  4        \        P                  ! ^^^4      V n        \        P
                  ! RR7      V n        \        ^4       Uu. uF  p\        4       NK  	  pp\        P                  ! V!  V n
        \        P                  ! R^
4      \        P
                  ! RR7      .p\        P                  ! V!  V n        \        P                  ! 4       V n        \        4       V n        \!        4       V n        R# u upi )r�  Frã   é,  N)r±  r8   rÚ   r�  r   rá  r  ru   r  rÜ  Úfeaturesrñ  Ú
classifierÚseqr   r«  r   rÃ  )r6   r„   ÚlayersÚheadrÀ  s   &   €r7   r8   Ú"ModelWithSequentialFusion.__init__ 
  s®   ø€ Ü‰ÑÔÜ—Y’Y˜q ! QÓ'ˆŒ
Ü—W’W UÔ+ˆŒ
Ü(-¨a¬Ó1© 1”*–,©ˆÐ1ÜŸš vÑ.ˆŒÜ—	’	˜#˜rÓ"¤B§G¢G°EÔ$:Ð;ˆÜŸ-š-¨Ñ.ˆŒÜ—=’=“?ˆŒÜ“[ˆŒ
Ü"“}ˆŽùò 2s   ÁDc                ó"  € V P                  V4      pV P                  V4      pV P                  V4      pV P                  V4      p\        P
                  ! VR4      pV P                  V4      pV P                  V4      pV P                  V4      pV# )r£   )r¦   r$  )	r«  r   r  r%  rf   rö   r&  r'  rÃ  r/  s   &&r7   r  Ú!ModelWithSequentialFusion.forward,
  su   € Ø�J‰J�q‹MˆØ�J‰J�q‹MˆØ�J‰J�q‹MˆØ�M‰M˜!ÓˆÜ�MŠM˜!Ð.Ó/ˆØ�O‰O˜AÓˆØ�H‰H�Q‹KˆØ�L‰L˜‹OˆØˆr:   )r&  r   rÃ  r%  r«  r  r'  rp  r  s   @@r7   r   r   
  s   ù‡ € ÷
%ó 
%÷	ò 	r:   r   c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )ÚModelForFusionWithBiasi8
  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú#ModelForFusionWithBias.__annotate__9
  s   ø€ ÷ %ñ %˜$ñ %r:   c                ó¬  <€ \         SV `  4        \        P                  ! ^^^RR7      P	                  \
        P                  R7      V n        \        P                  ! ^4      P	                  \
        P                  R7      V n	        \        P                  ! RR7      P	                  \
        P                  R7      V n        \        P                  ! ^^^RR7      P	                  \
        P                  R7      V n        \        P                  ! ^4      P	                  \
        P                  R7      V n        \        4       V n        \!        4       V n        R# )r�  TrŽ  rï   rã   N)r±  r8   rÚ   r�  r¿   rf   r­   r   rÄ  r
  rá  r  r  r  r   r«  r   rÃ  r+  s   &€r7   r8   ÚModelForFusionWithBias.__init__9
  sÖ   ø€ Ü‰ÑÔÜ—Y’Y˜q ! Q¨TÔ2×5Ñ5¼E¿K¹KÐ5ÓHˆŒ
Ü—>’> !Ó$×'Ñ'¬e¯k©kÐ'Ó:ˆŒÜ—W’W TÔ*×-Ñ-´E·K±KÐ-Ó@ˆŒ
Ü—Y’Y˜q ! Q¨TÔ2×5Ñ5¼E¿K¹KÐ5ÓHˆŒ
Ü—>’> !Ó$×'Ñ'¬e¯k©kÐ'Ó:ˆŒÜ“[ˆŒ
Ü"“}ˆŽr:   c                óô   € V P                  V4      pV P                  V4      pV P                  V4      pV P                  V4      pV P	                  V4      pV P                  V4      pV P                  V4      pV# rI   )r«  r   r
  r  r  r  rÃ  r/  s   &&r7   r  ÚModelForFusionWithBias.forwardC
  sb   € Ø�J‰J�q‹MˆØ�J‰J�q‹MˆØ�H‰H�Q‹KˆØ�J‰J�q‹MˆØ�J‰J�q‹MˆØ�H‰H�Q‹KˆØ�L‰L˜‹OˆØˆr:   )r
  r  r   r  rÃ  r«  r  rp  r  s   @@r7   r.  r.  8
  s   ù‡ € ÷%ó %÷ò r:   r.  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )ÚModelForLinearBNFusioniN
  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú#ModelForLinearBNFusion.__annotate__O
  s   ø€ ÷ 'ñ '˜$ñ 'r:   c                ó^  <€ \         SV `  4        \        P                  ! ^^
4      V n        \        P
                  ! ^
4      V n        \        P                  P                  V P                  P                  4       \        P                  P                  V P                  P                  4       R# )é   N)r±  r8   rÚ   rñ  r  rp  rÅ  ÚinitÚuniform_r!  r"  r+  s   &€r7   r8   ÚModelForLinearBNFusion.__init__O
  sd   ø€ Ü‰ÑÔÜ—)’)˜B Ó#ˆŒÜ—.’. Ó$ˆŒÜ
�‰×Ñ˜Ÿ™Ÿ™Ô(Ü
�‰×Ñ˜Ÿ™Ÿ™Ö&r:   c                óB   € V P                  V P                  V4      4      # rI   ©rÅ  r  r/  s   &&r7   r  ÚModelForLinearBNFusion.forwardV
  s   € Ø�w‰w�t—w‘w˜q“zÓ"Ð"r:   r?  rp  r  s   @@r7   r6  r6  N
  s   ù‡ € ÷'ó '÷#ò #r:   r6  c                   ó,   a € ] tR tRt o R tR tRtV tR# )ÚDummyObserveriZ
  c                ó   € R# )ç      ð?)rD  r“   rh   rK   s   &r7   Úcalculate_qparamsÚDummyObserver.calculate_qparams[
  s   € Øˆr:   c                ó   € V# rI   rh   r/  s   &&r7   r  ÚDummyObserver.forward^
  s   € Øˆr:   rh   N)rY   rZ   r[   r\   rE  r  r_   r`   ra   s   @r7   rB  rB  Z
  s   ø‡ € ò÷ð r:   rB  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )ÚModelForConvTransposeBNFusionib
  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú*ModelForConvTransposeBNFusion.__annotate__c
  ó   ø€ ÷ %ñ %˜$ñ %r:   c                ót  <€ \         SV `  4        \        P                  ! ^^^4      V n        \        P
                  ! ^4      V n        \        P                  ! ^^^4      V n        \        P                  ! ^4      V n
        \        P                  ! ^^^4      V n        \        P                  ! ^4      V n        R# ©r�  N)r±  r8   rÚ   ÚConvTranspose1dr   rp  r
  r   r  rÄ  r  ÚConvTranspose3dr  r  r  r+  s   &€r7   r8   Ú&ModelForConvTransposeBNFusion.__init__c
  s€   ø€ Ü‰ÑÔÜ×'Ò'¨¨1¨aÓ0ˆŒ
Ü—>’> !Ó$ˆŒÜ×'Ò'¨¨1¨aÓ0ˆŒ
Ü—>’> !Ó$ˆŒÜ×'Ò'¨¨1¨aÓ0ˆŒ
Ü—>’> !Ó$ˆŽr:   c                ó  € V P                  V4      pV P                  V4      pVP                  ^4      pV P                  V4      pV P	                  V4      pVP                  ^4      pV P                  V4      pV P                  V4      pV# r°  )r   r
  rŸ  r  r  r  r  r/  s   &&r7   r  Ú%ModelForConvTransposeBNFusion.forwardl
  so   € Ø�J‰J�q‹MˆØ�H‰H�Q‹KˆØ�K‰K˜‹NˆØ�J‰J�q‹MˆØ�H‰H�Q‹KˆØ�K‰K˜‹NˆØ�J‰J�q‹MˆØ�H‰H�Q‹KˆØˆr:   )r
  r  r  r   r  r  rp  r  s   @@r7   rJ  rJ  b
  s   ù‡ € ÷%ó %÷	ò 	r:   rJ  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )ÚModelWithFunctionalsix
  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú!ModelWithFunctionals.__annotate__y
  s   ø€ ÷ .ñ .˜$ñ .r:   c                óô   <€ \         SV `  4        \        P                  ! 4       V n        \        P                  ! 4       V n        \        P                  ! 4       V n        \        P                  ! 4       V n        R # rI   )r±  r8   ré  ÚFloatFunctionalÚmycatÚmyaddÚ
myadd_reluÚmymatmulr+  s   &€r7   r8   ÚModelWithFunctionals.__init__y
  sN   ø€ Ü‰ÑÔÜ×(Ò(Ó*ˆŒ
Ü×(Ò(Ó*ˆŒ
Ü×-Ò-Ó/ˆŒÜ×+Ò+Ó-ˆŽr:   c                óö   € V P                   P                  WV.4      pV P                  P                  W"4      pV P                  P                  W34      pV P                  P                  WDP                  4      pV# rI   )	r[  r�  r\  r”  r]  Úadd_relur^  ÚmatmulÚT)r6   r   r  Úzr‚  Úus   &&    r7   r  ÚModelWithFunctionals.forward„
  s]   € Ø�J‰J�N‰N˜A !˜9Ó%ˆØ�J‰J�N‰N˜1Ó ˆØ�O‰O×$Ñ$ QÓ*ˆØ�M‰M× Ñ  §C¡CÓ(ˆð
 ˆr:   )r\  r]  r[  r^  rp  r  s   @@r7   rV  rV  x
  s   ù‡ € ÷.ó .÷	ò 	r:   rV  c                   óJ   a a€ ] tR tRt oV3R lV 3R lltR tR tRtVtV ;t	# )Ú
ResNetBasei�
  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  ÚResNetBase.__annotate__‘
  s   ø€ ÷ /ñ /˜$ñ /r:   c                ó  <€ \         SV `  4        \        P                  p^p\        P                  ! W"RRR7      V n        V! V4      V n        \        P                  ! 4       V n        \        P                  ! 4       V n	        \        P                  P                  4       V n        \        P                  P                  4       V n        \        P                   ! R4      V n        \        P                  P%                  V^4      V n        R# )r�  FrŽ  Nrc  )r±  r8   rÚ   rÄ  r�  r   r
  rá  r  r  rf   ÚIdentityÚ
downsampler   rZ  ÚmyopÚAdaptiveAvgPool2dÚavgpoolrñ  r  ©r6   Ú
norm_layerÚinplanesrÀ  s   &  €r7   r8   ÚResNetBase.__init__‘
  s¦   ø€ Ü‰ÑÔÜ—^‘^ˆ
ØˆÜ—Y’Y˜x°6ÀÔFˆŒ
Ù˜hÓ'ˆŒÜ—W’W“YˆŒ
Ü—W’W“YˆŒ
ÜŸ(™(×+Ñ+Ó-ˆŒÜ—L‘L×0Ñ0Ó2ˆŒ	Ü×+Ò+¨FÓ3ˆŒÜ—(‘(—/‘/ (¨AÓ.ˆŽr:   c                óX  € V P                  V4      pV P                  V4      pV P                  V4      pV P                  V4      pV P                  P                  W#4      pV P                  V4      pV P                  V4      p\        P                  ! V^4      pV P                  V4      pV# r¢   )r   r
  r  rm  rn  r”  r  rp  rf   Úflattenr  ©r6   r   r‹  Úidentitys   &&  r7   r  ÚResNetBase.forwardž
  s†   € Ø�j‰j˜‹mˆØ�h‰h�s‹mˆØ�j‰j˜‹oˆØ—?‘? 1Ó%ˆØ�i‰i�m‰m˜CÓ*ˆØ�j‰j˜‹oˆØ�l‰l˜3ÓˆÜ�mŠm˜C Ó#ˆØ�g‰g�c‹lˆØˆ
r:   c                óê   € V P                   '       d2   \        P                  P                  P	                  V . RO.RR7       R# \        P                  P                  P                  V . RO.RR7       R# )r   Trã   N)r   r
  r  rñ  rK   s   &r7   rõ  ÚResNetBase.fuse_modelª
  s]   € à�=�=ˆ=Ü�H‰H×!Ñ!×2Ñ2ØÒ0Ð1¸4ð 3ö ô �H‰H×!Ñ!×.Ñ.ØÒ0Ð1¸4ð /ö r:   )rp  r
  r   rm  r  rn  r  r  )
rY   rZ   r[   r\   r8   r  rõ  r_   r`   r  r  s   @@r7   rh  rh  �
  s   ù‡ € ÷/ó /ò
÷	ò 	r:   rh  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )ÚModelMultipleOpsi¶
  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  ÚModelMultipleOps.__annotate__·
  s   ø€ ÷ #ñ #˜$ñ #r:   c                ó‚  <€ \         SV `  4        \        P                  p^p\        P                  ! W"RRR7      V n        \        P                  ! W"RRR7      V n        V! V4      V n        \        P                  ! 4       V n	        \        P                  ! 4       V n
        \        P                  P                  4       V n        \        P                  P                  4       V n        \        P                  P                  4       V n        \        P$                  ! R4      V n        \        P(                  ! ^^4      V n        R# ©r�  FrŽ  Nrc  )é   r‚  )r±  r8   rÚ   rÄ  r�  r   r  r
  rá  r  r  rf   rl  rm  r   rZ  Úskip_addr�  ro  rp  rñ  r  rq  s   &  €r7   r8   ÚModelMultipleOps.__init__·
  sÊ   ø€ Ü‰ÑÔÜ—^‘^ˆ
ØˆÜ—Y’Y˜x°6ÀÔFˆŒ
Ü—Y’Y˜x°6ÀÔFˆŒ
Ù˜hÓ'ˆŒÜ—W’W“YˆŒ
Ü—W’W“YˆŒ
ÜŸ(™(×+Ñ+Ó-ˆŒÜŸ™×4Ñ4Ó6ˆŒÜ—<‘<×/Ñ/Ó1ˆŒÜ×+Ò+¨FÓ3ˆŒÜ—)’)˜B Ó"ˆŽr:   c                óþ  € V P                  V4      pV P                  V4      pV P                  V4      pV P                  V4      pV P                  P                  W#4      pV P                  V4      pV P                  V4      pV P                  V4      p\        P                  P                  P                  V^^4      pV P                  P                  W".4      pVP                  R^4      pV P                  V4      pV# r  )r   r
  r  rm  rƒ  r”  r  rp  r  rf   rÚ   Ú
functionalÚ
max_pool2dr�  rö   r  rw  s   &&  r7   r  ÚModelMultipleOps.forwardÆ
  sÇ   € Ø�j‰j˜‹mˆØ�h‰h�s‹mˆØ�j‰j˜‹oˆØ—?‘? 1Ó%ˆØ�m‰m×Ñ Ó.ˆØ�j‰j˜‹oˆØ�l‰l˜3ÓˆØ�j‰j˜‹oˆÜ�h‰h×!Ñ!×,Ñ,¨S°!°QÓ7ˆØ�h‰h�l‰l˜C˜:Ó&ˆØ�k‰k˜"˜iÓ(ˆØ�g‰g�c‹lˆØˆ
r:   )
rp  r
  r�  r   r  rm  r  r  r  rƒ  rp  r  s   @@r7   r}  r}  ¶
  s   ù‡ € ÷#ó #÷ò r:   r}  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )ÚModelMultipleOpsNoAvgPooliÚ
  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú&ModelMultipleOpsNoAvgPool.__annotate__Û
  s   ø€ ÷ #ñ #˜$ñ #r:   c                ó<  <€ \         SV `  4        \        P                  p^p\        P                  ! W"RRR7      V n        \        P                  ! W"RRR7      V n        V! V4      V n        \        P                  ! 4       V n	        \        P                  ! 4       V n
        \        P                  P                  4       V n        \        P                  P                  4       V n        \        P                  ! R4      V n        \        P"                  ! ^^4      V n        R# r�  )r±  r8   rÚ   rÄ  r�  r   r  r
  rá  r  r  r   rZ  rƒ  r�  Ú	MaxPool2dÚmaxpoolrñ  r  rq  s   &  €r7   r8   Ú"ModelMultipleOpsNoAvgPool.__init__Û
  s´   ø€ Ü‰ÑÔÜ—^‘^ˆ
ØˆÜ—Y’Y˜x°6ÀÔFˆŒ
Ü—Y’Y˜x°6ÀÔFˆŒ
Ù˜hÓ'ˆŒÜ—W’W“YˆŒ
Ü—W’W“YˆŒ
ÜŸ™×4Ñ4Ó6ˆŒÜ—<‘<×/Ñ/Ó1ˆŒÜ—|’| FÓ+ˆŒÜ—)’)˜B Ó"ˆŽr:   c                óþ  € V P                  V4      pV P                  V4      pV P                  V4      pV P                  V4      pV P                  P                  W#4      pV P                  V4      pV P                  V4      pV P                  V4      p\        P                  P                  P                  V^^4      pV P                  P                  W".4      pVP                  R^4      pV P                  V4      pV# r  )r   r
  r  r  rƒ  r”  r  r�  rf   rÚ   r†  r‡  r�  rö   r  )r6   r   r‹  Úskips   &&  r7   r  Ú!ModelMultipleOpsNoAvgPool.forwardé
  sÆ   € Ø�j‰j˜‹mˆØ�h‰h�s‹mˆØ�j‰j˜‹oˆØ�z‰z˜!‹}ˆØ�m‰m×Ñ Ó*ˆØ�j‰j˜‹oˆØ�l‰l˜3ÓˆØ�j‰j˜‹oˆÜ�h‰h×!Ñ!×,Ñ,¨S°!°QÓ7ˆØ�h‰h�l‰l˜C˜:Ó&ˆØ�k‰k˜"˜iÓ(ˆØ�g‰g�c‹lˆØˆ
r:   )	r
  r�  r   r  r  r�  r  r  rƒ  rp  r  s   @@r7   rŠ  rŠ  Ú
  s   ù‡ € ÷#ó #÷ò r:   rŠ  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )ÚEmbeddingBagModuleiù
  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  ÚEmbeddingBagModule.__annotate__ú
  s   ø€ ÷ 
ñ 
˜$ñ 
r:   c                óv   <€ \         SV `  4        \        P                  P	                  ^
^RRRR7      V n        R# )rä  TFr}   rÞ  N)r±  r8   rf   rÚ   rê  rå  r+  s   &€r7   r8   ÚEmbeddingBagModule.__init__ú
  s8   ø€ Ü‰ÑÔÜ—8‘8×(Ñ(ØØØ $Ø$Øð )ó 
ˆŽr:   c                ó&   € V P                  WV4      # rI   ©rå  )r6   rñ  rò  rè  s   &&&&r7   r  ÚEmbeddingBagModule.forward  s   € Ø�x‰x˜Ð*<Ó=Ð=r:   r›  rp  r  s   @@r7   r•  r•  ù
  s   ù‡ € ÷
ó 
÷>ò >r:   r•  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )ÚEmbeddingModulei  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  ÚEmbeddingModule.__annotate__	  s   ø€ ÷ Kñ K˜$ñ Kr:   c                óp   <€ \         SV `  4        \        P                  P	                  ^
^R7      V n        R# ©rä  rà  N©r±  r8   rf   rÚ   rë  rå  r+  s   &€r7   r8   ÚEmbeddingModule.__init__	  s)   ø€ Ü‰ÑÔÜ—8‘8×%Ñ%°RÀrÐ%ÓJˆŽr:   c                ó$   € V P                  V4      # rI   r›  ©r6   rñ  s   &&r7   r  ÚEmbeddingModule.forward  s   € Ø�x‰x˜Ó Ð r:   r›  rp  r  s   @@r7   rž  rž    s   ù‡ € ÷Kó K÷!ò !r:   rž  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )ÚEmbeddingWithStaticLineari  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú&EmbeddingWithStaticLinear.__annotate__  rM  r:   c                ó6  <€ \         SV `  4        \        P                  P	                  ^
^R7      V n        \        P                  P                  ^^4      V n        \        V P
                  n	        \        V n	        \        4       V n        \        4       V n        R# r¢  )r±  r8   rf   rÚ   rê  rå  rñ  r  r   rÊ  r   r   r«  r   rÃ  r+  s   &€r7   r8   Ú"EmbeddingWithStaticLinear.__init__  sd   ø€ Ü‰ÑÔÜ—8‘8×(Ñ(¸È"Ð(ÓMˆŒÜ—(‘(—/‘/ ! QÓ'ˆŒÜ<ˆ�‰ÔÜ&ˆŒÜ“[ˆŒ
Ü"“}ˆŽr:   c                óÐ   € V P                  W4      pV P                  V4      pV P                  V4      pV P                  V4      p\        P
                  ! V.V.,           ^R7      pV# rõ  )rå  r«  r  rÃ  rf   r�  )r6   rñ  rò  Ú	linear_inrå  Úq_xr  r%  s   &&&&    r7   r  Ú!EmbeddingWithStaticLinear.forward  sV   € Ø�h‰h�wÓ(ˆØ�j‰j˜Ó#ˆØ�W‰W�S‹\ˆØ�\‰\˜"ÓˆÜ—9’9˜b˜T S E�\¨qÔ1ˆØˆr:   )rÃ  rå  r  rÊ  r«  rp  r  s   @@r7   r©  r©    s   ù‡ € ÷%ó %÷ò r:   r©  c                   óP   a a€ ] tR tRt oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚDenseTopMLPi$  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  ÚDenseTopMLP.__annotate__%  s   ø€ ÷ 
ñ 
à	ñ
r:   c                ó  <€ \         SV `  4        \        P                  ! \        P                  ! W4      4      V n        \        P                  ! \        P                  ! W#,           V4      \        P                  ! WE4      4      V n        R # rI   )r±  r8   rÚ   rÜ  rñ  Ú	dense_mlpÚtop_mlp)r6   Ú	dense_dimÚ	dense_outrÛ  Ú
top_out_inÚtop_out_outrÀ  s   &&&&&&€r7   r8   ÚDenseTopMLP.__init__%  s[   ø€ ô 	‰ÑÔäŸšÜ�IŠI�iÓ+ó
ˆŒô —}’}Ü�IŠI�iÕ/°Ó<Ü�IŠI�jÓ.ó
ˆŽr:   c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# )rl  Úsparse_featureÚdenser  ré  )r�   rb   s   "€r7   r€  rµ  2  s5   ø€ ÷ 	ñ 	áŸ™ð	ñ �|‰|ð	ñ 
�‰ñ		r:   c                óŒ   € V P                  V4      p\        P                  ! V.V.,           ^R7      pV P                  V4      pV# rõ  )r·  rf   r�  r¸  )r6   r¿  rÀ  Údense_featurer%  r‹  s   &&&   r7   r  ÚDenseTopMLP.forward2  s?   € ð
 Ÿ™ uÓ-ˆÜ—9’9˜m˜_°Ð/?Õ?ÀQÔGˆà�l‰l˜8Ó$ˆØˆ
r:   )r·  r¸  rp  r  s   @@r7   r³  r³  $  s   ù‡ € ÷
ó 
÷	÷ 	ð 	r:   r³  c                   ó8   a a€ ] tR tRt oV 3R ltR tRtVtV ;t# )ÚEmbBagWrapperi@  c                ó^   <€ \         SV `  4        \        P                  ! WR R7      V n        R# )r}   )rÝ  N)r±  r8   rÚ   rê  Úemb_bag)r6   rÚ  rÛ  rÀ  s   &&&€r7   r8   ÚEmbBagWrapper.__init__A  s    ø€ Ü‰ÑÔÜ—’ ~È5ÔQˆŽr:   c                ó$   € V P                  W4      # rI   ©rÇ  )r6   rñ  rò  s   &&&r7   r  ÚEmbBagWrapper.forwardE  s   € Ø�|‰|˜GÓ-Ð-r:   rÊ  rp  r  s   @@r7   rÅ  rÅ  @  s   ù‡ € õR÷.ò .r:   rÅ  c                   ól   a a€ ] tR tRt o^
t^t^t^t^t^t	^t
V3R lV 3R lltV3R lR ltRtVtV ;t# )ÚSparseNNModeliI  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  ÚSparseNNModel.__annotate__R  s   ø€ ÷ 

ñ 

˜$ñ 

r:   c                óú   <€ \         SV `  4        \        V P                  V P                  4      V n        \        V P                  V P                  V P                  V P                  V P                  4      V n        R # rI   )r±  r8   rÅ  Ú_NUM_EMBEDDINGSÚ_EMBEDDING_DIMÚmodel_sparser³  Ú
_DENSE_DIMÚ_DENSE_OUTPUTÚ_TOP_OUT_INÚ_TOP_OUT_OUTÚ	dense_topr+  s   &€r7   r8   ÚSparseNNModel.__init__R  s`   ø€ Ü‰ÑÔä)¨$×*>Ñ*>À×@SÑ@SÓTˆÔÜ$Ø�O‰OØ×ÑØ×ÑØ×ÑØ×Ñó
ˆŽr:   c                ó‚   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  RS[ P                  /# )rl  Úsparse_indicesÚsparse_offsetsrÀ  r  ré  )r�   rb   s   "€r7   r€  rÏ  ^  sC   ø€ ÷ 	ñ 	áŸ™ð	ñ Ÿ™ð	ñ �|‰|ð		ñ
 
�‰ñ	r:   c                óJ   € V P                  W4      pV P                  WC4      pV# rI   )rÓ  rØ  )r6   rÛ  rÜ  rÀ  r¿  r‹  s   &&&&  r7   r  ÚSparseNNModel.forward^  s'   € ð ×*Ñ*¨>ÓJˆØ�n‰n˜^Ó3ˆàˆ
r:   )rØ  rÓ  )rY   rZ   r[   r\   rÑ  rÒ  rÔ  rÕ  rÖ  r×  Ú_TOP_MLP_DIMr8   r  r_   r`   r  r  s   @@r7   rÍ  rÍ  I  sA   ù‡ € Ø€OØ€NØ€JØ€MØ€KØ€LØ€L÷

ó 

÷	÷ 	ð 	r:   rÍ  c                   óæ  € ] tR tRt ! R R]P
                  P                  4      t ! R R]P
                  P                  4      t ! R R]P
                  P                  4      t	 ! R R	]P
                  P                  4      t
 ! R
 R]P
                  P                  4      t ! R R]P
                  P                  4      t ! R R]P
                  P                  4      t ! R R]P
                  P                  4      t ! R R]P
                  P                  4      t ! R R]P
                  P                  4      t ! R R]P
                  P                  4      t ! R R]P
                  P                  4      t ! R R]P
                  P                  4      t ! R R]P
                  P                  4      t ! R R]P
                  P                  4      t ! R  R!]P
                  P                  4      t ! R" R#]P
                  P                  4      t ! R$ R%]P
                  P                  4      t ! R& R']P
                  P                  4      t ! R( R)]P
                  P                  4      t ! R* R+]P
                  P                  4      t ! R, R-]P
                  P                  4      t ! R. R/]P
                  P                  4      t ! R0 R1]P
                  P                  4      tR2tR3# )4ÚTestHelperModulesij  c                   ó8   a € ] tR tRt o V 3R lR ltR tRtV tR# )ÚTestHelperModules.ControlFlowik  c          
      óœ   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  RS[ P                  RS[ P                  /# )rl  ÚxsÚpred1Úpred2r  r  ré  )r�   rb   s   "€r7   r€  Ú*TestHelperModules.ControlFlow.__annotate__l  sX   ø€ ÷ "	Añ "	Aá—‘ð"	Añ —<‘<ð"	Añ —<‘<ð	"	Añ
 �|‰|ð"	Añ �\‰\ñ"	Ar:   c                ó²   aaaa	€ R  R lo	R R loR VV	3R lloR R loR VV3R	 llp\         P                  ! WD4      p\        P                  ! WQW#V4      # )
c                óX   € V ^8„  d   QhR\         P                  R\         P                  /# ©rl  r  r  ré  )r�   s   "r7   r€  Ú;TestHelperModules.ControlFlow.forward.<locals>.__annotate__s  s"   € ÷ ñ œuŸ|™|ð ´·±ñ r:   c                 óB   € W ,           p \         P                  ! W 4      p V # rI   ©rf   Úmm©r  s   &r7   Útrue_nestedÚ:TestHelperModules.ControlFlow.forward.<locals>.true_nesteds  s   € Ø•E�Ü—H’H˜Q“N�Ø�r:   c                óX   € V ^8„  d   QhR\         P                  R\         P                  /# rë  ré  )r�   s   "r7   r€  rì  x  s"   € ÷ &ñ &¤§¡ð &´·±ñ &r:   c                 ó.   € \         P                  ! W 4      # rI   rî  rð  s   &r7   Úfalse_nestedÚ;TestHelperModules.ControlFlow.forward.<locals>.false_nestedx  s   € Ü—x’x “~Ð%r:   c                óx   € V ^8„  d   QhR\         P                  R\         P                  R\         P                  /# )rl  r   rç  r  ré  )r�   s   "r7   r€  rì  {  s-   € ÷ ñ œ5Ÿ<™<ð ´·±ð ÄÇÁñ r:   c                 óH   <€ \         P                  ! VSSV .4      pW,           # rI   )r   Úcond)r   rç  rd  rõ  rñ  s   && €€r7   Útrue_fnÚ6TestHelperModules.ControlFlow.forward.<locals>.true_fn{  s"   ø€ Ü ×%Ò% e¨[¸,ÈÈÓL�Ø•u�r:   c                óX   € V ^8„  d   QhR\         P                  R\         P                  /# )rl  r   r  ré  )r�   s   "r7   r€  rì    s"   € ÷ ñ œEŸL™Lð ´·±ñ r:   c                 ó"   € V P                  4       # rI   )Úcos)r   r„   s   &&r7   Úfalse_fnÚ7TestHelperModules.ControlFlow.forward.<locals>.false_fn  s   € Ø—u‘u“w�r:   c          
      ó¸   € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R\         P                  R\         P                  /# )rl  r   ræ  rç  r  r  ré  )r�   s   "r7   r€  rì  ‚  sN   € ÷ 	ñ 	Ü—<‘<ð	ä—|‘|ð	ô —|‘|ð	ô —<‘<ð		ô
 —‘ñ	r:   c                 óˆ   <€ V P                  4       p \        P                  ! VSSW2.4      pW,           p V P                  4       # rI   )rþ  r   rù  Úsin)r   ræ  rç  r  rÿ  rú  s   &&&&€€r7   Úmap_fnÚ5TestHelperModules.ControlFlow.forward.<locals>.map_fn‚  s:   ø€ ð —E‘E“G�Ü ×%Ò% e¨W°hÀÀ
ÓK�Ø•E�Ø—u‘u“w�r:   )rf   rï  r   ru  )
r6   rå  ræ  rç  r  r  rÿ  rõ  rú  rñ  s
   &&&&& @@@@r7   r  Ú%TestHelperModules.ControlFlow.forwardl  sJ   û€ õõ
&÷ñ õ÷	ñ 	ô —’˜“ˆAÜ×#Ò# F°¸aÓ@Ð@r:   c                ó¶   € \         P                  ! ^^4      \         P                  ! R.4      \         P                  ! R.4      \         P                  ! ^^4      3# )rl  F)rf   Úonesrõ   rK   s   &r7   r¾  Ú,TestHelperModules.ControlFlow.example_inputs�  sD   € ä—
’
˜1˜aÓ Ü—’˜e˜WÓ%Ü—’˜e˜WÓ%Ü—
’
˜1˜aÓ ð	ð r:   rh   N)rY   rZ   r[   r\   r  r¾  r_   r`   ra   s   @r7   ÚControlFlowrã  k  s   ø‡ € ÷"	Að "	A÷H	ð 	r:   r
  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )Ú%TestHelperModules.Conv2dPropAnnotatoni˜  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú2TestHelperModules.Conv2dPropAnnotaton.__annotate__™  s   ø€ ÷ 	0ñ 	0˜dñ 	0r:   c                óº   <€ \         SV `  4        \        P                  P	                  ^^^4      V n        \        P                  P                  ^^4      V n        R# rO  )r±  r8   rf   rÚ   r�  r�  rñ  ro  r+  s   &€r7   r8   Ú.TestHelperModules.Conv2dPropAnnotaton.__init__™  s<   ø€ Ü‰GÑÔÜŸ™Ÿ™¨¨1¨aÓ0ˆDŒIÜŸ(™(Ÿ/™/¨!¨QÓ/ˆDŽKr:   c                óÄ   € V P                  V4      pVP                  R^4      p\        P                  P                  P                  VRR4      pV P                  V4      pV# )r£   rÇ  r¦   g      à¿)r�  r«   rf   rÚ   r†  Úhardtanhro  r/  s   &&r7   r  Ú-TestHelperModules.Conv2dPropAnnotaton.forwardž  sN   € Ø—	‘	˜!“ˆAØ—‘�r˜1“ˆAÜ—‘×#Ñ#×,Ñ,¨Q°°cÓ:ˆAØ—‘˜A“ˆAØˆHr:   )r�  ro  rp  r  s   @@r7   ÚConv2dPropAnnotatonr  ˜  s   ù‡ € ÷	0ó 	0÷
	ò 	r:   r  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )Ú)TestHelperModules.Conv2dWithObsSharingOpsi¥  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú6TestHelperModules.Conv2dWithObsSharingOps.__annotate__¦  s   ø€ ÷ 	Jñ 	J˜dñ 	Jr:   c                óþ   <€ \         SV `  4        \        P                  P	                  ^^^4      V n        \        P                  P                  4       V n        \        P                  P                  R4      V n	        R# ©r�  Nrc  )
r±  r8   rf   rÚ   r�  r�  ÚHardtanhr  ro  Úadaptive_avg_pool2dr+  s   &€r7   r8   Ú2TestHelperModules.Conv2dWithObsSharingOps.__init__¦  sQ   ø€ Ü‰GÑÔÜŸ™Ÿ™¨¨1¨aÓ0ˆDŒIÜ!ŸH™H×-Ñ-Ó/ˆDŒMÜ',§x¡x×'AÑ'AÀ&Ó'IˆDÖ$r:   c                ó˜   € V P                  V4      pV P                  V4      pV P                  V4      p\        P                  ! V4      pV# rI   )r�  r  r  rf   Úmeanr/  s   &&r7   r  Ú1TestHelperModules.Conv2dWithObsSharingOps.forward¬  s?   € Ø—	‘	˜!“ˆAØ×(Ñ(¨Ó+ˆAØ—‘˜aÓ ˆAÜ—
’
˜1“ˆAØˆHr:   )r  r�  r  rp  r  s   @@r7   ÚConv2dWithObsSharingOpsr  ¥  s   ù‡ € ÷	Jó 	J÷	ò 	r:   r!  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )Ú,TestHelperModules.Conv2dWithTwoLinearPermutei³  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú9TestHelperModules.Conv2dWithTwoLinearPermute.__annotate__´  ó   ø€ ÷ 	1ñ 	1˜dñ 	1r:   c                ó  <€ \         SV `  4        \        P                  P	                  ^^^4      V n        \        P                  P                  ^^RR7      V n        \        P                  P                  ^^4      V n        R# ©r�  FrŽ  N©	r±  r8   rf   rÚ   r�  r�  rñ  r"  r4  r+  s   &€r7   r8   Ú5TestHelperModules.Conv2dWithTwoLinearPermute.__init__´  óV   ø€ Ü‰GÑÔÜŸ™Ÿ™¨¨2¨qÓ1ˆDŒIÜ Ÿ8™8Ÿ?™?¨2¨q°u˜?Ó=ˆDŒLÜ Ÿ8™8Ÿ?™?¨1¨aÓ0ˆDŽLr:   c                ó’   € V P                  V4      p\        P                  ! VR4      pV P                  V P	                  V4      4      # ©r“   ©r“   rl  r�  r£   )r�  rf   Úpermuter4  r"  ©r6   r   Úconv_outÚpermute_outs   &&  r7   r  Ú4TestHelperModules.Conv2dWithTwoLinearPermute.forwardº  s7   € Ø—y‘y “|ˆHÜŸ-š-¨°,Ó?ˆKØ—<‘< §¡¨[Ó 9Ó:Ð:r:   ©r�  r"  r4  rp  r  s   @@r7   ÚConv2dWithTwoLinearPermuter#  ³  ó   ù‡ € ÷	1ó 	1÷	;ò 	;r:   r5  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )Ú%TestHelperModules.Conv2dWithTwoLineari¿  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú2TestHelperModules.Conv2dWithTwoLinear.__annotate__À  r&  r:   c                ó  <€ \         SV `  4        \        P                  P	                  ^^^4      V n        \        P                  P                  ^@^RR7      V n        \        P                  P                  ^^4      V n        R# r(  r)  r+  s   &€r7   r8   Ú.TestHelperModules.Conv2dWithTwoLinear.__init__À  r+  r:   c                ó’   € V P                  V4      p\        P                  ! VR4      pV P                  V P	                  V4      4      # )rl  )rl  é@   )r�  rf   rö   r4  r"  )r6   r   r1  Úreshape_outs   &&  r7   r  Ú-TestHelperModules.Conv2dWithTwoLinear.forwardÆ  s7   € Ø—y‘y “|ˆHÜŸ-š-¨°'Ó:ˆKØ—<‘< §¡¨[Ó 9Ó:Ð:r:   r4  rp  r  s   @@r7   ÚConv2dWithTwoLinearr8  ¿  r6  r:   rA  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )Ú$TestHelperModules.ConvLinearWPermuteiË  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú1TestHelperModules.ConvLinearWPermute.__annotate__Ì  ó   ø€ ÷ 	1ñ 	1˜dñ 	1r:   c                óº   <€ \         SV `  4        \        P                  P	                  ^^^4      V n        \        P                  P                  ^^4      V n        R# rO  )r±  r8   rf   rÚ   r�  r�  rñ  r"  r+  s   &€r7   r8   Ú-TestHelperModules.ConvLinearWPermute.__init__Ì  s<   ø€ Ü‰GÑÔÜŸ™Ÿ™¨¨1¨aÓ0ˆDŒIÜ Ÿ8™8Ÿ?™?¨1¨aÓ0ˆDŽLr:   c                ót   € V P                  V4      p\        P                  ! VR4      pV P                  V4      # r-  )r�  rf   r/  r"  r0  s   &&  r7   r  Ú,TestHelperModules.ConvLinearWPermute.forwardÑ  s.   € Ø—y‘y “|ˆHÜŸ-š-¨°,Ó?ˆKØ—<‘< Ó,Ð,r:   )r�  r"  rp  r  s   @@r7   ÚConvLinearWPermuterC  Ë  s   ù‡ € ÷	1ó 	1÷
	-ò 	-r:   rK  c                   óJ   a a€ ] tR tRt oV3R lV 3R lltR tR tRtVtV ;t	# )Ú!TestHelperModules.TwoLinearModuleiÖ  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú.TestHelperModules.TwoLinearModule.__annotate__×  ó   ø€ ÷ 	2ñ 	2˜dñ 	2r:   c                ó¼   <€ \         SV `  4        \        P                  P	                  ^^RR7      V n        \        P                  P	                  ^^4      V n        R# )é   FrŽ  N)r±  r8   rf   rÚ   rñ  r"  r4  r+  s   &€r7   r8   Ú*TestHelperModules.TwoLinearModule.__init__×  s>   ø€ Ü‰GÑÔÜ Ÿ8™8Ÿ?™?¨1¨b°u˜?Ó=ˆDŒLÜ Ÿ8™8Ÿ?™?¨2¨qÓ1ˆDŽLr:   c                óB   € V P                  V P                  V4      4      # rI   )r4  r"  r/  s   &&r7   r  Ú)TestHelperModules.TwoLinearModule.forwardÜ  s   € Ø—<‘< §¡¨Q£Ó0Ð0r:   c                ó2   € \         P                  ! ^^4      3# r°  ©rf   ÚrandnrK   s   &r7   r¾  Ú0TestHelperModules.TwoLinearModule.example_inputsß  s   € Ü—K’K  1Ó%Ð'Ð'r:   r8  ©
rY   rZ   r[   r\   r8   r  r¾  r_   r`   r  r  s   @@r7   ÚTwoLinearModulerM  Ö  s   ù‡ € ÷	2ó 	2ò
	1÷	(ò 	(r:   r[  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )ÚTestHelperModules.ConvMaxPool2diâ  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú,TestHelperModules.ConvMaxPool2d.__annotate__ã  rF  r:   c                óº   <€ \         SV `  4        \        P                  P	                  ^^^4      V n        \        P                  P                  ^^4      V n        R# )rl  N)r±  r8   rf   rÚ   r�  r�  rŽ  Úpoolr+  s   &€r7   r8   Ú(TestHelperModules.ConvMaxPool2d.__init__ã  s>   ø€ Ü‰GÑÔÜŸ™Ÿ™¨¨1¨aÓ0ˆDŒIÜŸ™×*Ñ*¨1¨aÓ0ˆDŽIr:   c                óJ   € V P                  V4      pV P                  V4      pV# rI   ©r�  ra  r/  s   &&r7   r  Ú'TestHelperModules.ConvMaxPool2d.forwardè  s!   € Ø—	‘	˜!“ˆAØ—	‘	˜!“ˆAØˆHr:   rd  rp  r  s   @@r7   ÚConvMaxPool2dr]  â  s   ù‡ € ÷	1ó 	1÷
	ò 	r:   rf  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )Ú+TestHelperModules.ConvWithAdaptiveAvgPool2dií  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú8TestHelperModules.ConvWithAdaptiveAvgPool2d.__annotate__î  s   ø€ ÷ 	Jñ 	J˜dñ 	Jr:   c                ó¸   <€ \         SV `  4        \        P                  P	                  ^^^4      V n        \        P                  P                  R4      V n        R# r  )r±  r8   rf   rÚ   r�  r�  ro  r  r+  s   &€r7   r8   Ú4TestHelperModules.ConvWithAdaptiveAvgPool2d.__init__î  s=   ø€ Ü‰GÑÔÜŸ™Ÿ™¨¨1¨aÓ0ˆDŒIÜ',§x¡x×'AÑ'AÀ&Ó'IˆDÖ$r:   c                óJ   € V P                  V4      pV P                  V4      pV# rI   )r�  r  r/  s   &&r7   r  Ú3TestHelperModules.ConvWithAdaptiveAvgPool2d.forwardó  s$   € Ø—	‘	˜!“ˆAØ×(Ñ(¨Ó+ˆAØˆHr:   )r  r�  rp  r  s   @@r7   ÚConvWithAdaptiveAvgPool2drh  í  s   ù‡ € ÷	Jó 	J÷
	ò 	r:   ro  c                   ó<   a a€ ] tR tRt oRV 3R lltR tRtVtV ;t# )Ú TestHelperModules.ConvWithBNReluiø  c                ó°  <€ \         SV `  4        ^\        P                  P                  ^\        P                  P
                  ^\        P                  P                  /p^\        P                  P                  ^\        P                  P                  ^\        P                  P                  /pWb,          ! ^^^WER7      V n
        V'       d   Wr,          ! ^4      V n        M#\        P                  P                  4       V n        V'       d&   \        P                  P                  4       V n        R# \        P                  P                  4       V n        R# )r£   )r"  re  N)r±  r8   rf   rÚ   r  r�  r  rp  rÄ  r  r�  rÅ  rl  rá  rw  )	r6   rw  rn  rÅ  r"  re  ÚconvsÚbnsrÀ  s	   &&&&&&  €r7   r8   Ú)TestHelperModules.ConvWithBNRelu.__init__ù  sÎ   ø€ Ü‰GÑÔØœŸ™Ÿ™¨¬E¯H©H¯O©O¸QÄÇÁÇÁÐPˆEà”5—8‘8×'Ñ'Ø”5—8‘8×'Ñ'Ø”5—8‘8×'Ñ'ðˆCð
 ž
 1 a¨°ÔGˆDŒIçØž( 1›+�•äŸ(™(×+Ñ+Ó-�”ßÜ!ŸH™HŸM™M›O�–	ä!ŸH™H×-Ñ-Ó/�–	r:   c                óh   € V P                  V4      pV P                  V4      pV P                  V4      # rI   rä  r/  s   &&r7   r  Ú(TestHelperModules.ConvWithBNRelu.forward  s*   € Ø—	‘	˜!“ˆAØ—‘˜“
ˆAØ—9‘9˜Q“<Ðr:   ré  )rl  TTr“   rp  r  s   @@r7   ÚConvWithBNRelurq  ø  s   ù‡ € ÷	0÷&	 ò 	 r:   rx  c                   ó<   a a€ ] tR tRt oRV 3R lltR tRtVtV ;t# )Ú!TestHelperModules.ConvTWithBNRelui  c                óH  <€ \         SV `  4        ^\        P                  P                  ^\        P                  P
                  /p^\        P                  P                  ^\        P                  P                  /pWR,          ! ^^^VR7      V n        V'       d   Wb,          ! ^4      V n	        M#\        P                  P                  4       V n	        V'       d&   \        P                  P                  4       V n        R# \        P                  P                  4       V n        R# )r£   rŽ  N)r±  r8   rf   rÚ   rP  r   rp  rÄ  ÚconvtrÅ  rl  rá  rw  )r6   rw  rn  rÅ  r"  Úconvtsrt  rÀ  s   &&&&&  €r7   r8   Ú*TestHelperModules.ConvTWithBNRelu.__init__  s²   ø€ Ü‰GÑÔØœŸ™×1Ñ1°1´e·h±h×6NÑ6NÐOˆFØ”e—h‘h×*Ñ*¨A¬u¯x©x×/CÑ/CÐDˆCØž Q¨¨1°4Ô8ˆDŒJçØž( 1›+�•äŸ(™(×+Ñ+Ó-�”ßÜ!ŸH™HŸM™M›O�–	ä!ŸH™H×-Ñ-Ó/�–	r:   c                óh   € V P                  V4      pV P                  V4      pV P                  V4      # rI   )r|  rÅ  rw  r/  s   &&r7   r  Ú)TestHelperModules.ConvTWithBNRelu.forward!  s*   € Ø—
‘
˜1“ˆAØ—‘˜“
ˆAØ—9‘9˜Q“<Ðr:   )rÅ  r|  rw  )rl  TTrp  r  s   @@r7   ÚConvTWithBNRelurz    s   ù‡ € ÷	0÷	 ò 	 r:   r�  c                   óJ   a a€ ] tR tRt oV3R lV 3R lltR tR tRtVtV ;t	# )Ú"TestHelperModules.Conv2dThenConv1di&  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú/TestHelperModules.Conv2dThenConv1d.__annotate__'  s   ø€ ÷ 	3ñ 	3˜dñ 	3r:   c                ó¼   <€ \         SV `  4        \        P                  P	                  ^^^4      V n        \        P                  P                  ^^^4      V n        R# rO  )r±  r8   rf   rÚ   r  r   r�  ri  r+  s   &€r7   r8   Ú+TestHelperModules.Conv2dThenConv1d.__init__'  s>   ø€ Ü‰GÑÔÜŸ(™(Ÿ/™/¨!¨Q°Ó2ˆDŒKÜŸ(™(Ÿ/™/¨!¨Q°Ó2ˆDŽKr:   c                ól   € V P                  V4      pVP                  ^ 4      pV P                  V4      pV# )r“   )ri  r–  r   r/  s   &&r7   r  Ú*TestHelperModules.Conv2dThenConv1d.forward,  s.   € Ø—‘˜A“ˆAØ—	‘	˜!“ˆAØ—‘˜A“ˆAØˆHr:   c                ó6   € \         P                  ! ^^^^4      3# r¢   rW  rK   s   &r7   r¾  Ú1TestHelperModules.Conv2dThenConv1d.example_inputs2  s   € Ü—K’K  1 a¨Ó+Ð-Ð-r:   )r   ri  rZ  r  s   @@r7   ÚConv2dThenConv1drƒ  &  s   ù‡ € ÷	3ó 	3ò
	÷	.ò 	.r:   rŒ  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )ÚTestHelperModules.Conv2dWithCati5  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú,TestHelperModules.Conv2dWithCat.__annotate__6  rP  r:   c                ó¼   <€ \         SV `  4        \        P                  P	                  ^^^4      V n        \        P                  P	                  ^^^4      V n        R# rO  ©r±  r8   rf   rÚ   r�  r   r  r+  s   &€r7   r8   Ú(TestHelperModules.Conv2dWithCat.__init__6  ó>   ø€ Ü‰GÑÔÜŸ™Ÿ™¨¨A¨qÓ1ˆDŒJÜŸ™Ÿ™¨¨A¨qÓ1ˆDŽJr:   c                ó|   € V P                  V4      pV P                  V4      p\        P                  ! W.^R7      pV# rõ  ©r   r  rf   r�  )r6   r   r  rd  s   &&& r7   r  Ú'TestHelperModules.Conv2dWithCat.forward;  s3   € Ø—
‘
˜1“ˆAØ—
‘
˜1“ˆAÜ—	’	˜1˜& aÔ(ˆAØˆHr:   r  rp  r  s   @@r7   ÚConv2dWithCatrŽ  5  s   ù‡ € ÷	2ó 	2÷
	ò 	r:   r˜  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )Ú"TestHelperModules.Conv2dWithTwoCatiA  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú/TestHelperModules.Conv2dWithTwoCat.__annotate__B  rP  r:   c                ó¼   <€ \         SV `  4        \        P                  P	                  ^^^4      V n        \        P                  P	                  ^^^4      V n        R# rO  r’  r+  s   &€r7   r8   Ú+TestHelperModules.Conv2dWithTwoCat.__init__B  r”  r:   c                óº   € V P                  V4      pV P                  V4      p\        P                  ! W.^R7      pW4,           p\        P                  ! We.4      pV# rõ  r–  ©r6   r’  r“  Úx3Úx4r  rd  r‚  s   &&&&&   r7   r  Ú*TestHelperModules.Conv2dWithTwoCat.forwardG  sJ   € Ø—‘˜B“ˆBØ—‘˜B“ˆBÜ—	’	˜2˜(¨Ô*ˆAØ•ˆAÜ—	’	˜1˜&Ó!ˆAØˆHr:   r  rp  r  s   @@r7   ÚConv2dWithTwoCatrš  A  s   ù‡ € ÷	2ó 	2÷
	ò 	r:   r¤  c                   óJ   a a€ ] tR tRt oV3R lV 3R lltR tR tRtVtV ;t	# )Ú!TestHelperModules.Conv2dWithSplitiO  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú.TestHelperModules.Conv2dWithSplit.__annotate__P  rP  r:   c                ó¼   <€ \         SV `  4        \        P                  P	                  ^^^4      V n        \        P                  P	                  ^^^4      V n        R# rO  r’  r+  s   &€r7   r8   Ú*TestHelperModules.Conv2dWithSplit.__init__P  r”  r:   c                ó�   € V P                  V4      p\        P                  ! V^^R7      w  r#\        P                  ! W#.^R7      pV# )rl  rœ  )r   rf   Úsplitr�  )r6   r   r’  r“  r  s   &&   r7   r  Ú)TestHelperModules.Conv2dWithSplit.forwardU  s:   € Ø—
‘
˜1“ˆAä—[’[  A¨1Ô-‰FˆBÜ—	’	˜2˜(¨Ô*ˆAØˆHr:   c                ó6   € \         P                  ! ^^^^4      3# r¢   rW  rK   s   &r7   r¾  Ú0TestHelperModules.Conv2dWithSplit.example_inputs\  ó   € Ü—K’K  1 b¨"Ó-Ð/Ð/r:   r  rZ  r  s   @@r7   ÚConv2dWithSplitr¦  O  s   ù‡ € ÷	2ó 	2ò
	÷	0ò 	0r:   r±  c                   ó&   a € ] tR tRt o R tRtV tR# )ÚTestHelperModules.ThreeAddi_  c                ó6   € W,           pW4,           pWV,           pV# rI   rh   r   s   &&&&&   r7   r  Ú"TestHelperModules.ThreeAdd.forward`  s   € Ø•ˆAØ•ˆAØ•ˆAØˆHr:   rh   N©rY   rZ   r[   r\   r  r_   r`   ra   s   @r7   ÚThreeAddr³  _  s   ø‡ € ÷	ð 	r:   r·  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )Ú!TestHelperModules.EmbeddingModuleif  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú.TestHelperModules.EmbeddingModule.__annotate__g  s   ø€ ÷ 	Oñ 	O˜dñ 	Or:   c                óp   <€ \         SV `  4        \        P                  P	                  ^
^R7      V n        R# r¢  r£  r+  s   &€r7   r8   Ú*TestHelperModules.EmbeddingModule.__init__g  s)   ø€ Ü‰GÑÔÜ—x‘x×)Ñ)¸È2Ð)ÓNˆDŽHr:   c                ó$   € V P                  V4      # rI   r›  r¦  s   &&r7   r  Ú)TestHelperModules.EmbeddingModule.forwardk  s   € Ø—8‘8˜GÓ$Ð$r:   r›  rp  r  s   @@r7   rž  r¹  f  s   ù‡ € ÷	Oó 	O÷	%ò 	%r:   rž  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )Ú+TestHelperModules.EmbeddingConvLinearModulein  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú8TestHelperModules.EmbeddingConvLinearModule.__annotate__o  r&  r:   c                ó  <€ \         SV `  4        \        P                  P	                  ^
^R7      V n        \        P                  P                  ^^R4      V n        \        P                  P                  ^^4      V n	        R# )rä  rà  N)r£   r�  )
r±  r8   rf   rÚ   rë  rå  r�  r�  rñ  ro  r+  s   &€r7   r8   Ú4TestHelperModules.EmbeddingConvLinearModule.__init__o  sW   ø€ Ü‰GÑÔÜ—x‘x×)Ñ)¸È1Ð)ÓMˆDŒHÜŸ™Ÿ™¨¨2¨vÓ6ˆDŒIÜŸ(™(Ÿ/™/¨"¨aÓ0ˆDŽKr:   c                ó$  € V P                  V4      p\        P                  ! V^ R7      p\        P                  ! VR4      pV P	                  V4      p\        P                  ! VR4      p\        P
                  ! V^ R7      pV P                  V4      # )r“   rœ  )r“   r�  r£   rl  r.  )rå  rf   rŸ  r/  r�  r–  ro  )r6   rñ  Ú
embeddingsr1  s   &&  r7   r  Ú3TestHelperModules.EmbeddingConvLinearModule.forwardu  sm   € ØŸ™ 'Ó*ˆJÜŸš¨¸Ô;ˆJÜŸš z°<Ó@ˆJØ—y‘y Ó,ˆHÜ—}’} X¨|Ó<ˆHÜ—}’} X°1Ô5ˆHØ—;‘;˜xÓ(Ð(r:   )r�  rå  ro  rp  r  s   @@r7   ÚEmbeddingConvLinearModulerÁ  n  s   ù‡ € ÷	1ó 	1÷	)ò 	)r:   rÉ  c                   ó&   a € ] tR tRt o R tRtV tR# )ÚTestHelperModules.AddInplaceAddi~  c                ó&   € W,           pW,          pV# rI   rh   r  s   &&&r7   r  Ú'TestHelperModules.AddInplaceAdd.forward  ó   € Ø•ˆAØ�FˆAØˆHr:   rh   Nr¶  ra   s   @r7   ÚAddInplaceAddrË  ~  ó   ø‡ € ÷	ð 	r:   rÏ  c                   ó&   a € ] tR tRt o R tRtV tR# )ÚTestHelperModules.MulInplaceMuli„  c                ó&   € W,          pW,          pV# rI   rh   r  s   &&&r7   r  Ú'TestHelperModules.MulInplaceMul.forward…  rÎ  r:   rh   Nr¶  ra   s   @r7   ÚMulInplaceMulrÒ  „  rÐ  r:   rÕ  c                   ó&   a € ] tR tRt o R tRtV tR# )ÚTestHelperModules.AddMulScalariŠ  c                óN   € V^,           pV^,          pV^,          pV^,          pV# )r�  rh   r/  s   &&r7   r  Ú&TestHelperModules.AddMulScalar.forward‹  s+   € Ø�A•ˆAØ�A•ˆAØ��FˆAØ��FˆAØˆHr:   rh   Nr¶  ra   s   @r7   ÚAddMulScalarr×  Š  s   ø‡ € ÷	ð 	r:   rÚ  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )Ú+TestHelperModules.ConvBnReLU2dAndLinearReLUi’  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú8TestHelperModules.ConvBnReLU2dAndLinearReLU.__annotate__“  s   ø€ ÷ 	(ñ 	(˜dñ 	(r:   c                óî   <€ \         SV `  4        \        P                  R R7      V n        \
        P                  P                  ^^RR7      V n        \
        P                  P                  4       V n
        R# )T)rw  FrŽ  N)r±  r8   rá  rx  Úconv_bn_relurf   rÚ   rñ  ro  rá  rw  r+  s   &€r7   r8   Ú4TestHelperModules.ConvBnReLU2dAndLinearReLU.__init__“  sO   ø€ Ü‰GÑÔÜ 1× @Ñ @ÀdÐ @Ó KˆDÔÜŸ(™(Ÿ/™/¨!¨Q°U˜/Ó;ˆDŒKÜŸ™Ÿ™›ˆDŽIr:   c                óx   € V P                  V4      p\        P                  ! VR4      pV P                  V4      pV# r-  )rà  rf   r/  ro  )r6   r   r2  Ú
linear_outs   &&  r7   r  Ú3TestHelperModules.ConvBnReLU2dAndLinearReLU.forward™  s6   € Ø×!Ñ! !Ó$ˆAÜŸ-š-¨¨<Ó8ˆKØŸ™ [Ó1ˆJØÐr:   )rà  ro  rw  rp  r  s   @@r7   ÚConvBnReLU2dAndLinearReLUrÜ  ’  s   ù‡ € ÷	(ó 	(÷	ò 	r:   rå  c                   óJ   a a€ ] tR tRt oV3R lV 3R lltR tR tRtVtV ;t	# )Ú!TestHelperModules.GroupwiseConv2diŸ  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú.TestHelperModules.GroupwiseConv2d.__annotate__   s   ø€ ÷ 	;ñ 	;˜dñ 	;r:   c                ót   <€ \         SV `  4        \        P                  P	                  ^^^^R7      V n        R# )r‚  )rþ   N)r±  r8   rf   rÚ   r�  r�  r+  s   &€r7   r8   Ú*TestHelperModules.GroupwiseConv2d.__init__   s*   ø€ Ü‰GÑÔÜŸ™Ÿ™¨¨1¨a¸˜Ó:ˆDŽIr:   c                ó$   € V P                  V4      # rI   r“  r/  s   &&r7   r  Ú)TestHelperModules.GroupwiseConv2d.forward¤  s   € Ø—9‘9˜Q“<Ðr:   c                ó6   € \         P                  ! ^^^
^
4      3# r°  rW  rK   s   &r7   r¾  Ú0TestHelperModules.GroupwiseConv2d.example_inputs§  r°  r:   r“  rZ  r  s   @@r7   ÚGroupwiseConv2drç  Ÿ  s   ù‡ € ÷	;ó 	;ò	 ÷	0ò 	0r:   rð  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )Ú!TestHelperModules.LinearReluModeliª  c                ó   <€ V ^8„  d   QhRR/# r&  rh   )r�   rb   s   "€r7   r€  Ú.TestHelperModules.LinearReluModel.__annotate__«  s   ø€ ÷ 	(ñ 	(˜dñ 	(r:   c                óð   <€ \         SV `  4        \        P                  P	                  ^^4      P                  \        P                  R7      V n        \        P                  P                  4       V n	        R# r)  rD  r+  s   &€r7   r8   Ú*TestHelperModules.LinearReluModel.__init__«  sG   ø€ Ü‰GÑÔÜ—h‘h—o‘o a¨Ó+×.Ñ.´U·[±[Ð.ÓAˆDŒGÜŸ™Ÿ™›ˆDŽIr:   c                óF   € V P                  V P                  V4      4      pV# rI   rG  r/  s   &&r7   r  Ú)TestHelperModules.LinearReluModel.forward°  s   € Ø—	‘	˜$Ÿ'™' !›*Ó%ˆAØˆHr:   rM  rp  r  s   @@r7   r?  rò  ª  s   ù‡ € ÷	(ó 	(÷
	ò 	r:   r?  rh   N) rY   rZ   r[   r\   rf   rÚ   r
  r
  r  r!  r5  rA  rK  r[  rf  ro  rx  r�  rŒ  r˜  r¤  r±  r·  rž  rÉ  rÏ  rÕ  rÚ  rå  rð  r?  r_   rh   r:   r7   rá  rá  j  sè  † ô+�e—h‘h—o‘oô +ôZ˜eŸh™hŸo™oô ô %§(¡(§/¡/ô ô
; U§X¡X§_¡_ô 
;ô
;˜eŸh™hŸo™oô 
;ô	-˜UŸX™XŸ_™_ô 	-ô
(˜%Ÿ(™(Ÿ/™/ô 
(ô	˜Ÿ™Ÿ™ô 	ô	 E§H¡H§O¡Oô 	ô ˜Ÿ™Ÿ™ô  ô2 ˜%Ÿ(™(Ÿ/™/ô  ô*.˜5Ÿ8™8Ÿ?™?ô .ô
˜Ÿ™Ÿ™ô 
ô˜5Ÿ8™8Ÿ?™?ô ô0˜%Ÿ(™(Ÿ/™/ô 0ô �5—8‘8—?‘?ô ô%˜%Ÿ(™(Ÿ/™/ô %ô) E§H¡H§O¡Oô )ô ˜Ÿ™Ÿ™ô ô˜Ÿ™Ÿ™ô ô�u—x‘x—‘ô ô E§H¡H§O¡Oô ô	0˜%Ÿ(™(Ÿ/™/ô 	0ô˜%Ÿ(™(Ÿ/™/÷ ð r:   rá  Únonec                ó¢   € VR9  d   \        RV 24      h ! R R\        P                  P                  4      pV! WW#WE4      P	                  4       # )a—  
Generate a linear module using onednn.qlinear_pointwise directly
with static quantization parameters (no choose_qparams at runtime).
It is used to test fusion and lowering passes in Inductor for X86 CPU.
Input quantization limit is 0-127 to avoid overflow on old platforms.
Params:
    N: output feature dimension
    K: input feature dimension
    bias: boolean flag to indicate whether linear module has bias
    example_input: example input tensor to get scale/zero point
    epilogue: oneDNN qlinear pointwise post op, e.g. none/relu/gelu
    output_dtype: output dtype used by onednn.qlinear_pointwise
Return:
    An instance of the quantized linear module
úUnsupported epilogue: c                   ó8   a a€ ] tR tRt oV 3R ltR tRtVtV ;t# )Ú._static_quantized_linear_module.<locals>.ModeliÎ  c           
     óŽ  <€ \         SV `  4        \        P                  P                  P
                  P                  V^ ^\        P                  ! \        P                  4      P                  \        P                  R7      w  V n        V n        V P                  P                  4       P                  4       V P                  P                  4       P                  4       uV n        V n        \        P                  P!                  W!V4      V n        \        P                  P                  P%                  V P"                  P&                  \        P(                  R7      w  V n        V n        V P*                  P                  4       P/                  \        P                  4      P1                  4       V n        V P,                  P                  4       P/                  \        P2                  4      P1                  4       V n        \        P                  P                  P4                  P7                  V P"                  P&                  V P*                  V P,                  ^ R^\        P(                  R7      V n        V'       d   V P"                  P:                  V n        MRV n        RV n        ^ V n         W`n!        WPn"        RV n#        RV n$        R# )	r“   ©r¡  r¢  r‘  rî   rï   ©Úaxisr¡  r¢  rî   NrD  rù  é€ÿÿÿrh   )%r±  r8   rf   rF  Úquantized_decomposedÚchoose_qparamsrõ   r�  r“  r‘  r€  Úx_scalerª  Údetachrz   rÚ   rñ  ro  Úchoose_qparams_per_tokenr!  r•  Úw_scalesÚw_zpsr¿   r–  rž  r÷   ÚdefaultÚqwr"  r  Úy_scaleÚy_zpÚoutput_dtypeÚpost_opÚunary_post_op_argsÚpost_op_algo)r6   ÚNÚKr"  Úexample_inputÚepiloguer  rÀ  s   &&&&&&&€r7   r8   Ú7_static_quantized_linear_module.<locals>.Model.__init__Ï  sè  ø€ ô ‰GÑÔÜ&+§i¡i×&DÑ&D×&SÑ&S×&ZÑ&ZØØØÜ—K’K¤§¡Ó.×2Ñ2Ü—k‘kð '[ó 'Ñ#ˆDŒL˜$œ)ð '+§l¡l×&9Ñ&9Ó&;×&@Ñ&@Ó&BÀDÇIÁI×DTÑDTÓDV×D[ÑD[ÓD]Ð#ˆDŒL˜$œ)ÜŸ(™(Ÿ/™/¨!°Ó5ˆDŒKÜ(-¯	©	×(FÑ(F×(_Ñ(_Ø—‘×"Ñ"¬%¯*©*ð )`ó )Ñ%ˆDŒM˜4œ:ð !ŸM™M×0Ñ0Ó2×5Ñ5´e·m±mÓD×LÑLÓNˆDŒMØŸ™×*Ñ*Ó,×/Ñ/´·±Ó<×DÑDÓFˆDŒJÜ—i‘i×4Ñ4×IÑI×QÑQØ—‘×"Ñ"Ø—‘Ø—
‘
ØØØÜ—j‘jð Ró ˆDŒG÷ ØŸ™×)Ñ)�•à�”àˆDŒLØˆDŒIØ ,ÔØ#ŒLØ&(ˆDÔ#Ø &ˆDÖr:   c                ó¬  € \         P                  P                  P                  V P                  R 4      pVP                  4       '       d]   \         P                  P                  P                  P                  VV P                  V P                  ^ ^ÿ\         P                  R7      pMTp\         P                  P                  P                  P                  VV P                  V P                  VV P                  V P                  V P                  V P                   V P"                  V P$                  V P&                  V P(                  V P*                  4      # )N©r¡  r¢  rî   )rf   rF  r@  Úqlinear_prepackr  Úis_floating_pointr  rò   r
  r  rª  r€  Úqlinear_pointwiser  r	  r  r  r  r  r  r  r  )r6   r   Ú	qw_packedÚqxs   &&  r7   r  Ú6_static_quantized_linear_module.<locals>.Model.forwardý  sø   € ÜŸ	™	×(Ñ(×8Ñ8¸¿¹À$ÓGˆIØ×"Ñ"×$Ò$Ü—Y‘Y×3Ñ3×GÑG×OÑOØØ—L‘LØ—I‘IØØ!ÜŸ+™+ð Pó ‘ð �Ü—9‘9×#Ñ#×5Ñ5×=Ñ=ØØ—‘Ø—	‘	ØØ—‘Ø—
‘
Ø—‘Ø—‘Ø—	‘	Ø×!Ñ!Ø—‘Ø×'Ñ'Ø×!Ñ!óð r:   )r  ro  r  r  r  r  r  r  r	  r  rª  r  r  rp  r  s   @@r7   ÚModelrý  Î  s   ù‡ € õ,	'÷\	ò 	r:   r  )rù  rw  Úgelu©rt  rf   rÚ   r
  rN  )r  r  r"  r  r  r  r  s   &&&&&& r7   Ú_static_quantized_linear_moduler"  ´  sQ   € ð. Ð/Ô/ÜÐ5°h°ZÐ@ÓAÐAôJ”—‘—‘ô JñX ��t¨HÓC×HÑHÓJÐJr:   r”  c           
      óÖ   € VR9  d   \        RV 24      hVR9  d   \        RV 24      h ! R R\        P                  P                  4      pV! V VVVVVVV4      P	                  4       # )rù  rû  zUnsupported binary post op: c                   ó8   a a€ ] tR tRt oV 3R ltR tRtVtV ;t# )Ú5_static_quantized_linear_binary_module.<locals>.Modeli,  c	           
     óø  <€ \         SV `  4        \        P                  P                  P
                  P                  V^ ^\        P                  ! \        P                  4      P                  \        P                  R7      w  V n        V n        V P                  P                  4       P                  4       V P                  P                  4       P                  4       uV n        V n        \        P                  P!                  W!V4      V n        \        P                  P                  P%                  V P"                  P&                  \        P(                  R7      w  V n        V n        V P*                  P                  4       P/                  \        P                  4      P1                  4       V n        V P,                  P                  4       P/                  \        P2                  4      P1                  4       V n        \        P                  P                  P4                  P7                  V P"                  P&                  V P*                  V P,                  ^ R^\        P(                  R7      V n        V'       d   V P"                  P:                  V n        MRV n        V\        P                  \        P(                  39   Ed   V P#                  V4      V,           p	^ ^\        P                  rËp
V\        P(                  8X  d   R^\        P(                  rËp
\        P                  P                  P
                  P                  V	V
V\        P                  ! \        P                  4      P                  VR7      w  rÞVP                  4       P                  4       VP                  4       P                  4       uV n        V n         MR^ uV n        V n         W€n!        W`n"        RV n#        Wpn$        RV n%        RV n&        R# )	r“   rÿ  rï   r   NrD  rº   r  rh   )'r±  r8   rf   rF  r  r  rõ   r�  r“  r‘  r€  r  rª  r  rz   rÚ   rñ  ro  r  r!  r•  r  r	  r¿   r–  rž  r÷   r
  r  r"  r  r  r  r  Úbinary_post_opÚbinary_alphaÚunary_post_opr  Úunary_post_op_algo)r6   r  r  r"  r  Úexample_binary_inputr'  r  r  Úexample_outÚqminÚqmaxÚqdtyper  r  rÀ  s   &&&&&&&&&      €r7   r8   Ú>_static_quantized_linear_binary_module.<locals>.Model.__init__-  sÎ  ø€ ô ‰GÑÔÜ&+§i¡i×&DÑ&D×&SÑ&S×&ZÑ&ZØØØÜ—K’K¤§¡Ó.×2Ñ2Ü—k‘kð '[ó 'Ñ#ˆDŒL˜$œ)ð —‘×#Ñ#Ó%×*Ñ*Ó,Ø—	‘	× Ñ Ó"×'Ñ'Ó)ð $ˆDŒL˜$œ)ô  Ÿ(™(Ÿ/™/¨!°Ó5ˆDŒKÜ(-¯	©	×(FÑ(F×(_Ñ(_Ø—‘×"Ñ"¬%¯*©*ð )`ó )Ñ%ˆDŒM˜4œ:ð !ŸM™M×0Ñ0Ó2×5Ñ5´e·m±mÓD×LÑLÓNˆDŒMØŸ™×*Ñ*Ó,×/Ñ/´·±Ó<×DÑDÓFˆDŒJÜ—i‘i×4Ñ4×IÑI×QÑQØ—‘×"Ñ"Ø—‘Ø—
‘
ØØØÜ—j‘jð Ró ˆDŒG÷ ØŸ™×)Ñ)�•à�”à¤§¡¬U¯Z©ZÐ8Õ8ð #Ÿk™k¨-Ó8Ð;OÕO�Ø&'¨¬e¯k©k˜F�Ø¤5§:¡:Ô-Ø*.°´U·Z±Z �DÜ %§	¡	× >Ñ >× MÑ M× TÑ TØØ"Ø"ÜŸš¤E§M¡MÓ2×6Ñ6Ø ð !Uó !‘�ð +2¯.©.Ó*:×*?Ñ*?Ó*AÀ4Ç;Á;Ã=×CUÑCUÓCWÐ'�”˜d�ià*-¨qÐ'�”˜dœià ,ÔØ"0ÔØ #ˆDÔØ!)ÔØ&(ˆDÔ#Ø&(ˆDÖ#r:   c                óä  € \         P                  P                  P                  V P                  R 4      pR^ rTVP                  4       '       d]   \         P                  P                  P                  P                  VV P                  V P                  ^ ^\         P                  R7      pMTp\         P                  P                  P                  P                  VV P                  V P                  VV P                  V P                  VV P                   V P"                  V P$                  V P&                  VVV P(                  V P*                  V P,                  V P.                  V P0                  4      # )NrD  r  )rf   rF  r@  r  r  r  r  rò   r
  r  rª  r€  r  Úbinaryr  r	  r  r  r  r  r'  r(  r)  r  r*  )r6   r   rQ   r  Úother_scaleÚother_zpr  s   &&&    r7   r  Ú=_static_quantized_linear_binary_module.<locals>.Model.forwardr  s  € ÜŸ	™	×(Ñ(×8Ñ8¸¿¹À$ÓGˆIØ$'¨˜Ø×"Ñ"×$Ò$Ü—Y‘Y×3Ñ3×GÑG×OÑOØØ—L‘LØ—I‘IØØ!ÜŸ+™+ð Pó ‘ð �Ü—9‘9×#Ñ#×5Ñ5×<Ñ<ØØ—‘Ø—	‘	ØØ—‘Ø—
‘
ØØ—‘Ø—‘Ø—	‘	Ø×!Ñ!ØØØ×#Ñ#Ø×!Ñ!Ø×"Ñ"Ø×'Ñ'Ø×'Ñ'ó%ð r:   )r  r(  r'  ro  r  r  r)  r*  r  r  r	  r  rª  r  r  rp  r  s   @@r7   r  r%  ,  s   ù‡ € õC	)÷J!	ò !	r:   r  )rù  rw  )r”  r}   r!  )	r  r  r"  r  r+  r'  r  r  r  s	   &&&&&&&& r7   Ú&_static_quantized_linear_binary_moduler6    sƒ   € ð Ð'Ô'ÜÐ5°h°ZÐ@ÓAÐAØ˜^Ô+ÜÐ;¸NÐ;KÐLÓMÐMôg”—‘—‘ô gñR Ø	Ø	ØØØØØØó	÷ �dƒfð	r:   )r¢   rI   )r‚  é   )r‚  é    )Òr]   rf   Ú'torch.ao.nn.intrinsic.quantized.dynamicrÝ  rÚ   Ú	intrinsicr   rW  r   Útorch.ao.nn.quantizedré  Útorch.ao.nn.quantized.dynamicrú  Útorch.distributedÚdistributedrÒ   Útorch.nnÚtorch.nn.functionalr†  r  Úfunctorch.experimentalr   Útorch.ao.nn.intrinsicr   Útorch.ao.quantizationr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Ú+torch.ao.quantization.quantization_mappingsr   r   r    Útorch.jit.mobiler!   Ú(torch.testing._internal.common_quantizedr"   Ú$torch.testing._internal.common_utilsr#   r$   Útorch.ao.ns.fx.ns_typesr%   r&   Ú!torch.ao.quantization.quantize_fxr'   r(   r)   r*   Útorch.fxr+   Útorch.fx.graphr,   r  ÚImportErrorrP  r0  r  rÐ   r"  Útypingr-   Úcollections.abcr.   Únumpyrb  Útorch._dynamoÚ_dynamorR  Útorch.testingr/   r1   ri   rn   ÚCrossEntropyLossÚ_default_loss_fnr‰   r‹   r¶   rÆ   rÔ   r×   rá   ræ   ré   r  r  r3  r:  r>  rC  rJ  rO  rU  rZ  ÚtorchvisionÚHAS_TORCHVISIONÚskipIfÚskip_if_no_torchvisionr`  rž  rj  r�  rš  r¬  r®  r  r
  r$  r=  rJ  rT  re  rr  r€  rˆ  rœ  r¨  r¶  rÀ  rÐ  rÛ  rë  rü  r  r  r'  r3  r?  rO  r`  rm  r}  rŠ  rš  r¦  r´  r¿  rÔ  râ  rè  rð  rû  r  r  r  r.  r>  rI  rT  r_  ro  r~  r‰  r”  rŸ  r­  rµ  r¿  rÅ  rÍ  rÔ  rÚ  rà  rí  rø  r   r  rÜ  r  r   r.  r6  rB  rJ  rV  rh  r}  rŠ  r•  rž  r©  r³  rÅ  rÍ  rá  r“  r"  r6  rh   r:   r7   Ú<module>rY     s»  ðñó ß 7× 7Ñ 7ß #Ó #ß ,Ö ,Ý  Ý ß Ð Ý /Ý .÷÷ ÷ ÷ ÷ ÷ ÷ ÷8ñ õ 8Ý Nß IðßL÷ó õ %Ý#à€Fó Û Û 	Û 	ã Ý Ý $ã Ý #Ý #÷#7ñ #7òLòð —8‘8×,Ñ,Ó.Ð ð 3Cô &÷..ñ .ô2ò"ò Fò!òòOô,òP5òfòò$ò$ò(ò$ò$ò$ò$ð$Ûà€Oð "Ÿš¨_Ô)<Ð>NÓOÐ òPð ')§h¡hÀô 	ô3!ôl'òD2ôBU>˜8ô U>ôp2Ð3ô 2ôp
#˜UŸX™XŸ_š_ô 
#ô# e§h¡h§o¢oô #ô# E§H¡H§O¢Oô #ô#�R—Y’Yô #ô �e—h‘h—o’oô ô˜%Ÿ(™(Ÿ/š/ô ô$ §¡§¢ô ô
)�—‘—’ô 
)ô
)˜Ÿ™Ÿšô 
)ô)˜Ÿ™Ÿšô )ô$) %§(¡(§/¢/ô )ô$)�%—(‘(—/’/ô )ô)˜5Ÿ8™8Ÿ?š?ô )ô()�e—h‘h—o’oô )ô")˜uŸx™xŸšô )ôB)˜Ÿ™Ÿšô )ô#˜%Ÿ(™(Ÿ/š/ô #ô.˜rŸyšyô .ô# 5§8¡8§?¢?ô #ô ˜5Ÿ8™8Ÿ?š?ô ô"#�e—h‘h—o’oô #ô#˜EŸH™HŸOšOô #ô"#˜Ÿ™Ÿšô #ô&#˜UŸX™XŸ_š_ô #ô&#�e—h‘h—o’oô #ô<@˜Ÿ™Ÿšô <@ô@)�E—H‘H—O’Oô )ô)˜Ÿ™Ÿšô )ô$)�u—x‘x—’ô )ô&˜UŸX™XŸ_š_ô ô,�%—(‘(—/’/ô ô˜5Ÿ8™8Ÿ?š?ô ô(˜eŸh™hŸošoô ô  u§x¡x§¢ô ô4�E—H‘H—O’Oô ô S�%—(‘(—/’/ô Sô6
#�u—x‘x—’ô 
#ô
1 u§x¡x§¢ô 
1ô1 E§H¡H§O¢Oô 1ô1˜uŸx™xŸšô 1ô 0 §	¢	ô 0ô1 b§i¢iô 1ô")�u—x‘x—’ô )ô2
/ U§X¡X§_¢_ô 
/ô/ %§(¡(§/¢/ô /ô.˜bŸišiô .ô/ "§)¢)ô /ô" �U—X‘X—_’_ô  ô"'˜eŸh™hŸošoô 'ô(�U—X‘X—_’_ô ô ˜5Ÿ8™8Ÿ?š?ô ô$˜EŸH™HŸOšOô ô$ %§(¡(§/¢/ô ô˜uŸx™xŸšô ô6@Ð#;ô @ô˜rŸyšyô ô, §	¢	ô ô2	˜Ÿ	š	ô 	ô'˜BŸIšIô 'ô,�R—Y’Yô ,ô^
�—’ô 
ô §	¢	ô ô2˜RŸYšYô ô,	#˜RŸYšYô 	#ô�E—H‘H—O’Oô ô B§I¢Iô ô,˜5Ÿ8™8Ÿ?š?ô ô0#�—‘—’ô #ôL�u—x‘x—’ô ôH §¡§¢ô ô>>˜Ÿ™Ÿšô >ô!�e—h‘h—o’oô !ô §¡§¢ô ô&�"—)’)ô ô8.�B—I’Iô .ô�B—I’Iô ÷BHñ Hð^
 Ø—’ôfKð^ ØØ—’öAøðsf ô ØƒFðûð` ô ØƒOðús$   Â,"j# Å0j3 ê#	j0ê/j0ê3	k ê?k 