+
     °³j|}  ã                   óÎ  a € R7 t50 t ^ RIt^ RIHt ^ RIHt ^ RIHtHtH	t	H
t
 ^ RIt^ RIHt ^RIHtHt ^RIHtHt ^RIHt ^RIHtHtHt ^R	IHt ^R
IHtHt . R8Ot ! R R]	4      t  ! R R]4      t! ! R R]PD                  4      t# ! R R]PD                  4      t$ ! R R]PD                  4      t%R R lt&R]/t'] ^ k / ]'CRRRR /Ct( ! R! R]4      t) ! R" R]4      t* ! R# R]4      t+ ! R$ R]4      t, ! R% R]4      t-]! 4       ]! R&])P\                  3R'7      R(RR)R*/R+ R, ll4       4       t/]! 4       ]! R&]*P\                  3R'7      R(RR)R*/R- R. ll4       4       t0]! 4       ]! R&]+P\                  3R'7      R(RR)R*/R/ R0 ll4       4       t1]! 4       ]! R&],P\                  3R'7      R(RR)R*/R1 R2 ll4       4       t2]! 4       ]! R9R'7      R(RR)R*/R3 R4 ll4       4       t3R:R5 R6 llt4R# );é    N)ÚOrderedDict)Úpartial)ÚAnyÚCallableÚ
NamedTupleÚOptional)ÚConv2dNormActivationÚMLP)ÚImageClassificationÚInterpolationMode)Ú_log_api_usage_once)Úregister_modelÚWeightsÚWeightsEnum)Ú_IMAGENET_CATEGORIES)Ú_ovewrite_named_paramÚhandle_legacy_interfaceÚVisionTransformerÚViT_B_16_WeightsÚViT_B_32_WeightsÚViT_L_16_WeightsÚViT_L_32_WeightsÚViT_H_14_Weightsc                   ó\   a € ] tR t^ t o ]P
                  t]P                  tV 3R lt	Rt
V tR# )ÚConvStemConfigc                ó¦   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[ ;R&   S[RS[P                  3,          ;R&   S[RS[P                  3,          ;R&   # )é   Úout_channelsÚkernel_sizeÚstride.Ú
norm_layerÚactivation_layer)Úintr   ÚnnÚModule)ÚformatÚ__classdict__s   "€Úf/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torchvision/models/vision_transformer.pyÚ__annotate__ÚConvStemConfig.__annotate__    s[   ø‡ ‚ ÙÑñ áÑñ ñ �Kñ ñ ˜™bŸi™i˜Õ(Ñ9ñ	 ñ
 ˜s¡B§I¡I˜~Õ.Ñ8ò ó    © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r$   ÚBatchNorm2dr!   ÚReLUr"   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r'   s   @r(   r   r       s!   ø‡ € ð ,.¯>©>€JØ13·±Ð÷ ƒ r+   r   c                   óR   a a€ ] tR t^(t oRt^tV3R lV 3R lltV 3R ltRtVt	V ;t
# )ÚMLPBlockzTransformer MLP block.c                ó,   <€ V ^8„  d   QhRS[ RS[ RS[/# )r   Úin_dimÚmlp_dimÚdropout)r#   Úfloat)r&   r'   s   "€r(   r)   ÚMLPBlock.__annotate__-   s"   ø€ ÷ 6ñ 6™sð 6©Sð 6¹5ñ 6r+   c                óˆ  <€ \         SV `  WV.\        P                  R VR7       V P	                  4        F‰  p\        V\        P                  4      '       g   K%  \        P                  P                  VP                  4       VP                  f   K^  \        P                  P                  VP                  RR7       K‹  	  R # )N)r"   Úinplacer;   ç�íµ ÷Æ°>©Ústd)ÚsuperÚ__init__r$   ÚGELUÚmodulesÚ
isinstanceÚLinearÚinitÚxavier_uniform_ÚweightÚbiasÚnormal_)Úselfr9   r:   r;   ÚmÚ	__class__s   &&&& €r(   rD   ÚMLPBlock.__init__-   s}   ø€ Ü‰Ñ˜¨6Ð!2ÄRÇWÁWÐVZÐdkÐÔlà—‘–ˆAÜ˜!œRŸY™Y×'Ô'Ü—‘×'Ñ'¨¯©Ô1Ø—6‘6Ô%Ü—G‘G—O‘O A§F¡F°�OÖ5ó	  r+   c           	     ó  <€ VP                  R R4      pVe   V^8  dX   \        ^4       FH  p	R F?  p
V RV	^,            RV
 2pV ^V	,           RV
 2pW±9   g   K,  VP                  V4      W&   KA  	  KJ  	  \        SV `  VVVVVVV4       R# )ÚversionNÚlinear_Ú.)rK   rL   )ÚgetÚrangeÚpoprC   Ú_load_from_state_dict)rN   Ú
state_dictÚprefixÚlocal_metadataÚstrictÚmissing_keysÚunexpected_keysÚ
error_msgsrS   ÚiÚtypeÚold_keyÚnew_keyrP   s   &&&&&&&&     €r(   rY   ÚMLPBlock._load_from_state_dict6   s§   ø€ ð !×$Ñ$ Y°Ó5ˆàŠ?˜g¨œkä˜1–X�Û.�DØ!' ¨°°!µ¨u°A°d°VÐ<�GØ!' ¨¨1­¨¨Q¨t¨fÐ5�GØÖ,Ø.8¯n©n¸WÓ.E˜
Ó+ó	 /ñ ô 	‰Ñ%ØØØØØØØö	
r+   r,   )r-   r.   r/   r0   Ú__doc__Ú_versionrD   rY   r4   r5   Ú__classcell__©rP   r'   s   @@r(   r7   r7   (   s!   ù‡ € Ù à€H÷6ó 6÷
õ 
r+   r7   c                   ó~   a a€ ] tR t^Vt oRt]! ]P                  RR7      3V3R lV 3R llltV3R lR lt	Rt
VtV ;t# )	ÚEncoderBlockzTransformer encoder block.r@   ©Úepsc                óz   <€ V ^8„  d   QhRS[ RS[ RS[ RS[RS[RS[RS[P                  P
                  3,          /# )r   Ú	num_headsÚ
hidden_dimr:   r;   Úattention_dropoutr!   .©r#   r<   r   Útorchr$   r%   )r&   r'   s   "€r(   r)   ÚEncoderBlock.__annotate__Y   sY   ø€ ÷ :ñ :áð:ñ ð:ñ ð	:ñ
 ð:ñ !ð:ñ ˜S¡%§(¡(§/¡/Ð1Õ2ñ:r+   c                óø   <€ \         SV `  4        Wn        V! V4      V n        \        P
                  ! W!VR R7      V n        \        P                  ! V4      V n        V! V4      V n	        \        W#V4      V n        R# )T)r;   Úbatch_firstN)rC   rD   ro   Úln_1r$   ÚMultiheadAttentionÚself_attentionÚDropoutr;   Úln_2r7   Úmlp)rN   ro   rp   r:   r;   rq   r!   rP   s   &&&&&&&€r(   rD   ÚEncoderBlock.__init__Y   sh   ø€ ô 	‰ÑÔØ"Œñ ˜zÓ*ˆŒ	Ü ×3Ò3°JÐSdÐrvÔwˆÔÜ—z’z 'Ó*ˆŒñ ˜zÓ*ˆŒ	Ü˜J°Ó9ˆŽr+   c                ó4   <€ V ^8„  d   QhRS[ P                  /# ©r   Úinput©rs   ÚTensor)r&   r'   s   "€r(   r)   rt   n   s   ø€ ÷ 	ñ 	™UŸ\™\ñ 	r+   c                ó@  € \         P                  ! VP                  4       ^8H  RVP                   24       V P	                  V4      pV P                  W"VRR7      w  r#V P                  V4      pW!,           pV P                  V4      pV P                  V4      pW$,           # )é   ú2Expected (batch_size, seq_length, hidden_dim) got F)Úneed_weights)	rs   Ú_assertÚdimÚshaperw   ry   r;   r{   r|   )rN   r€   ÚxÚ_Úys   &&   r(   ÚforwardÚEncoderBlock.forwardn   s‡   € Ü�Š�e—i‘i“k QÑ&Ð*\Ð]b×]hÑ]hÐ\iÐ(jÔkØ�I‰I�eÓˆØ×"Ñ" 1¨¸Ð"Ó?‰ˆØ�L‰L˜‹OˆØ�Iˆà�I‰I�a‹LˆØ�H‰H�Q‹KˆØ�uˆr+   )r;   rw   r{   r|   ro   ry   ©r-   r.   r/   r0   rf   r   r$   Ú	LayerNormrD   r�   r4   r5   rh   ri   s   @@r(   rk   rk   V   s1   ù‡ € Ù$ñ 6=¸R¿\¹\ÈtÔ5T÷:õ :÷*	÷ 	ð 	r+   rk   c                   ó~   a a€ ] tR t^zt oRt]! ]P                  RR7      3V3R lV 3R llltV3R lR lt	Rt
VtV ;t# )	ÚEncoderz?Transformer Model Encoder for sequence to sequence translation.r@   rl   c                ó†   <€ V ^8„  d   QhRS[ RS[ RS[ RS[ RS[ RS[RS[RS[R	S[P                  P
                  3,          /# )
r   Ú
seq_lengthÚ
num_layersro   rp   r:   r;   rq   r!   .rr   )r&   r'   s   "€r(   r)   ÚEncoder.__annotate__}   sm   ø€ ÷ )ñ )áð)ñ ð)ñ ð	)ñ
 ð)ñ ð)ñ ð)ñ !ð)ñ ˜S¡%§(¡(§/¡/Ð1Õ2ñ)r+   c	           	     óŽ  <€ \         SV `  4        \        P                  ! \        P
                  ! ^W4      P                  RR7      4      V n        \        P                  ! V4      V n	        \        4       p	\        V4       F  p
\        VVVVVV4      V	RV
 2&   K  	  \        P                  ! V	4      V n        V! V4      V n        R# )é   g{®Gáz”?rA   Úencoder_layer_N)rC   rD   r$   Ú	Parameterrs   ÚemptyrM   Úpos_embeddingrz   r;   r   rW   rk   Ú
SequentialÚlayersÚln)rN   r”   r•   ro   rp   r:   r;   rq   r!   rž   ra   rP   s   &&&&&&&&&  €r(   rD   ÚEncoder.__init__}   s©   ø€ ô 	‰ÑÔô  Ÿ\š\¬%¯+ª+°a¸Ó*P×*XÑ*XÐ]aÐ*XÓ*bÓcˆÔÜ—z’z 'Ó*ˆŒÜ.9«mˆÜ�zÖ"ˆAÜ+7ØØØØØ!Øó,ˆF�^ A 3Ð'Ó(ñ #ô —m’m FÓ+ˆŒÙ˜ZÓ(ˆŽr+   c                ó4   <€ V ^8„  d   QhRS[ P                  /# r   r�   )r&   r'   s   "€r(   r)   r–   š   s   ø€ ÷ 9ñ 9™UŸ\™\ñ 9r+   c                óî   € \         P                  ! VP                  4       ^8H  RVP                   24       WP                  ,           pV P                  V P                  V P                  V4      4      4      # )r„   r…   )rs   r‡   rˆ   r‰   rœ   rŸ   rž   r;   )rN   r€   s   &&r(   r�   ÚEncoder.forwardš   sZ   € Ü�Š�e—i‘i“k QÑ&Ð*\Ð]b×]hÑ]hÐ\iÐ(jÔkØ×*Ñ*Õ*ˆØ�w‰w�t—{‘{ 4§<¡<°Ó#6Ó7Ó8Ð8r+   )r;   rž   rŸ   rœ   r�   ri   s   @@r(   r’   r’   z   s1   ù‡ € ÙIñ 6=¸R¿\¹\ÈtÔ5T÷)õ )÷:9÷ 9ð 9r+   r’   c            	       óš   a a€ ] tR t^ t oRtRRRR]! ]P                  RR7      R3V3R lV 3R llltV3R	 lR
 lt	V3R lR lt
RtVtV ;t# )r   z;Vision Transformer as per https://arxiv.org/abs/2010.11929.ç        iè  Nr@   rl   c                óÎ   <€ V ^8„  d   QhRS[ RS[ RS[ RS[ RS[ RS[ RS[RS[R	S[ R
S[S[ ,          RS[RS[P
                  P                  3,          RS[S[S[,          ,          /# )r   Ú
image_sizeÚ
patch_sizer•   ro   rp   r:   r;   rq   Únum_classesÚrepresentation_sizer!   .Úconv_stem_configs)	r#   r<   r   r   rs   r$   r%   Úlistr   )r&   r'   s   "€r(   r)   ÚVisionTransformer.__annotate__£   s±   ø€ ÷ g1ñ g1áðg1ñ ðg1ñ ð	g1ñ
 ðg1ñ ðg1ñ ðg1ñ ðg1ñ !ðg1ñ ðg1ñ &¡c�]ðg1ñ ˜S¡%§(¡(§/¡/Ð1Õ2ðg1ñ $¡D©Õ$8Õ9ñg1r+   c                ó†  <€ \         SV `  4        \        V 4       \        P                  ! W,          ^ 8H  R4       Wn        W n        WPn        W`n        W€n	        Wpn
        W�n        W n        W°n        Ve¾   \        P                  ! 4       p^p\!        V4       Fh  w  ppVP#                  RV 2\%        VVP&                  VP(                  VP*                  VP                  VP,                  R7      4       VP&                  pKj  	  VP#                  R\        P.                  ! Wå^R7      4       WÐn        M\        P.                  ! ^WRVR7      V n        W,          ^,          p\        P2                  ! \        P4                  ! ^^V4      4      V n        V^,          p\9        VVVVVVVV4      V n        VV n        \?        4       pV
f   \        P@                  ! WY4      VR&   MJ\        P@                  ! WZ4      VR	&   \        PB                  ! 4       VR
&   \        P@                  ! W©4      VR&   \        P                  ! V4      V n"        \G        V P0                  \        P.                  4      '       dø   V P0                  PH                  V P0                  P(                  ^ ,          ,          V P0                  P(                  ^,          ,          p\        PJ                  PM                  V P0                  PN                  \P        PR                  ! ^V,          4      R7       V P0                  PT                  e4   \        PJ                  PW                  V P0                  PT                  4       EM%V P0                  PX                  Ee   \G        V P0                  PX                  \        P.                  4      '       dÙ   \        PJ                  P[                  V P0                  PX                  PN                  R\P        PR                  ! RV P0                  PX                  P&                  ,          4      R7       V P0                  PX                  PT                  e>   \        PJ                  PW                  V P0                  PX                  PT                  4       \]        V PD                  R	4      '       dì   \G        V PD                  P^                  \        P@                  4      '       d¸   V PD                  P^                  P`                  p\        PJ                  PM                  V PD                  P^                  PN                  \P        PR                  ! ^V,          4      R7       \        PJ                  PW                  V PD                  P^                  PT                  4       \G        V PD                  Pb                  \        P@                  4      '       d}   \        PJ                  PW                  V PD                  Pb                  PN                  4       \        PJ                  PW                  V PD                  Pb                  PT                  4       R# R# )r   z&Input shape indivisible by patch size!NÚconv_bn_relu_)Úin_channelsr   r   r    r!   r"   Ú	conv_last)r°   r   r   )r°   r   r   r    ÚheadÚ
pre_logitsÚactrA   r¥   g       @)ÚmeanrB   )2rC   rD   r   rs   r‡   r§   r¨   rp   r:   rq   r;   r©   rª   r!   r$   r�   Ú	enumerateÚ
add_moduler	   r   r   r    r"   ÚConv2dÚ	conv_projrš   ÚzerosÚclass_tokenr’   Úencoderr”   r   rH   ÚTanhÚheadsrG   r°   rI   Útrunc_normal_rK   ÚmathÚsqrtrL   Úzeros_r±   rM   Úhasattrr³   Úin_featuresr²   )rN   r§   r¨   r•   ro   rp   r:   r;   rq   r©   rª   r!   r«   Úseq_projÚprev_channelsra   Úconv_stem_layer_configr”   Úheads_layersÚfan_inrP   s   &&&&&&&&&&&&&       €r(   rD   ÚVisionTransformer.__init__£   s?  ø€ ô 	‰ÑÔÜ˜DÔ!Ü�Š�jÕ-°Ñ2Ð4\Ô]Ø$ŒØ$ŒØ$ŒØŒØ!2ÔØŒØ&ÔØ#6Ô Ø$ŒàÒ(ä—}’}“ˆHØˆMÜ-6Ð7HÖ-IÑ)�Ð)Ø×#Ñ#Ø# A 3Ð'Ü(Ø$1Ø%;×%HÑ%HØ$:×$FÑ$FØ5×<Ñ<Ø#9×#DÑ#DØ)?×)PÑ)Pôô
ð !7× CÑ C’ñ .Jð ×ÑØœRŸYšY°=ÐghÔiôð )1�NäŸYšYØ¨JÐWaôˆDŒNð !Õ.°1Õ4ˆ
ô Ÿ<š<¬¯ª°A°q¸*Ó(EÓFˆÔØ�a�ˆ
äØØØØØØØØó	
ˆŒð %ˆŒä4?³MˆØÒ&Ü#%§9¢9¨ZÓ#EˆL˜Ò ä)+¯ª°:Ó)SˆL˜Ñ&Ü"$§'¢'£)ˆL˜ÑÜ#%§9¢9Ð-@Ó#NˆL˜Ñ ä—]’] <Ó0ˆŒ
ä�d—n‘n¤b§i¡i×0Ò0à—^‘^×/Ñ/°$·.±.×2LÑ2LÈQÕ2OÕOÐRV×R`ÑR`×RlÑRlÐmnÕRoÕoˆFÜ�G‰G×!Ñ! $§.¡.×"7Ñ"7¼T¿YºYÀqÈ6ÅzÓ=RÐ!ÔSØ�~‰~×"Ñ"Ò.Ü—‘—‘˜tŸ~™~×2Ñ2Ô3ùØ�^‰^×%Ñ%Ó1´jÀÇÁ×AYÑAYÔ[]×[dÑ[d×6eÒ6eä�G‰G�O‰OØ—‘×(Ñ(×/Ñ/°c¼t¿yºyÈÈtÏ~É~×OgÑOg×OtÑOtÕItÓ?uð ô ð �~‰~×'Ñ'×,Ñ,Ò8Ü—‘—‘˜tŸ~™~×7Ñ7×<Ñ<Ô=ä�4—:‘:˜|×,Ò,´¸D¿J¹J×<QÑ<QÔSU×S\ÑS\×1]Ò1]Ø—Z‘Z×*Ñ*×6Ñ6ˆFÜ�G‰G×!Ñ! $§*¡*×"7Ñ"7×">Ñ">ÄDÇIÂIÈaÐRXÍjÓDYÐ!ÔZÜ�G‰G�N‰N˜4Ÿ:™:×0Ñ0×5Ñ5Ô6ä�d—j‘j—o‘o¤r§y¡y×1Ò1Ü�G‰G�N‰N˜4Ÿ:™:Ÿ?™?×1Ñ1Ô2Ü�G‰G�N‰N˜4Ÿ:™:Ÿ?™?×/Ñ/Ö0ñ 2r+   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   rŠ   Úreturnr�   )r&   r'   s   "€r(   r)   r­     s#   ø€ ÷ ñ ¡§¡ð ±·±ñ r+   c                ó¸  € VP                   w  r#rEV P                  p\        P                  ! W@P                  8H  R V P                   RV R24       \        P                  ! WPP                  8H  RV P                   RV R24       WF,          pWV,          pV P                  V4      pVP                  W P                  Wx,          4      pVP                  ^ ^^4      pV# )zWrong image height! Expected z	 but got Ú!zWrong image width! Expected )	r‰   r¨   rs   r‡   r§   r¹   Úreshaperp   Úpermute)	rN   rŠ   ÚnÚcÚhÚwÚpÚn_hÚn_ws	   &&       r(   Ú_process_inputÚ VisionTransformer._process_input  sÁ   € Ø—W‘W‰
ˆˆaØ�O‰OˆÜ�Š�aŸ?™?Ñ*Ð.KÈDÏOÉOÐK\Ð\eÐfgÐehÐhiÐ,jÔkÜ�Š�aŸ?™?Ñ*Ð.JÈ4Ï?É?ÐJ[Ð[dÐefÐdgÐghÐ,iÔjØ�fˆØ�fˆð �N‰N˜1Óˆà�I‰I�aŸ™¨#­)Ó4ˆð �I‰I�a˜˜AÓˆàˆr+   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r   rŠ   r�   )r&   r'   s   "€r(   r)   r­   !  s   ø€ ÷ ñ ™Ÿ™ñ r+   c                ó  € V P                  V4      pVP                  ^ ,          pV P                  P                  VRR4      p\        P
                  ! W1.^R7      pV P                  V4      pVR,          pV P                  V4      pV# )r   ©rˆ   éÿÿÿÿ)ºNNNr   )rØ   r‰   r»   Úexpandrs   Úcatr¼   r¾   )rN   rŠ   rÑ   Úbatch_class_tokens   &&  r(   r�   ÚVisionTransformer.forward!  sz   € à×Ñ Ó"ˆØ�G‰G�A�Jˆð !×,Ñ,×3Ñ3°A°r¸2Ó>ÐÜ�IŠIÐ(Ð,°!Ô4ˆà�L‰L˜‹Oˆð ˆd�Gˆà�J‰J�q‹Mˆàˆr+   )rq   r»   r¹   r;   r¼   r¾   rp   r§   r:   r!   r©   r¨   rª   r”   )r-   r.   r/   r0   rf   r   r$   r�   rD   rØ   r�   r4   r5   rh   ri   s   @@r(   r   r       sM   ù‡ € ÙEð Ø#&ØØ-1Ù5<¸R¿\¹\ÈtÔ5TØ<@÷g1õ g1÷Rð ÷*÷ ð r+   c                óš   € V ^8„  d   QhR\         R\         R\         R\         R\         R\        \        ,          R\        R\        R	\
        /	# )
r   r¨   r•   ro   rp   r:   ÚweightsÚprogressÚkwargsrÌ   )r#   r   r   Úboolr   r   )r&   s   "r(   r)   r)   4  sg   € ÷ ñ Üðäðô ðô ð	ô
 ðô ”kÕ"ðô ðô ðô ñr+   c                 ó¾  € Ve†   \        VR\        VP                  R,          4      4       VP                  R,          ^ ,          VP                  R,          ^,          8X  g   Q h\        VRVP                  R,          ^ ,          4       VP                  R^à4      p\	        RRVRV RVRVRVR	V/VB p	V'       d#   V	P                  VP                  VR
R7      4       V	# )Nr©   Ú
categoriesÚmin_sizer§   r¨   r•   ro   rp   r:   T)rå   Ú
check_hashr,   )r   ÚlenÚmetarX   r   Úload_state_dictÚget_state_dict)
r¨   r•   ro   rp   r:   rä   rå   ræ   r§   Úmodels
   &&&&&&&,  r(   Ú_vision_transformerrñ   4  sí   € ð ÒÜ˜f m´S¸¿¹ÀlÕ9SÓ5TÔUØ�|‰|˜JÕ'¨Õ*¨g¯l©l¸:Õ.FÀqÕ.IÔIÐIÐIÜ˜f l°G·L±LÀÕ4LÈQÕ4OÔPØ—‘˜L¨#Ó.€Jäñ Øðàðð ðð ð	ð
 ðð ðð ñ€E÷ Ø×Ñ˜g×4Ñ4¸hÐSWÐ4ÓXÔYà€Lr+   ré   Úrecipez(https://github.com/facebookresearch/SWAGÚlicensez:https://github.com/facebookresearch/SWAG/blob/main/LICENSEc                   óH  € ] tR tRt]! R]! ]^àR7      / ]CRRRR&RRR	R
RRRR//RRRRRR/CR7      t]! R]! ]RR]	P                  R7      / ]CRRRR'R	R
RRRR//RRRRRR/CR7      t]! R]! ]^à^à]	P                  R7      / ]CRR RRRR&R	R
RR!RR"//RRRRRR#/CR7      t]tR$tR%# )(r   i_  z9https://download.pytorch.org/models/vit_b_16-c867db91.pth©Ú	crop_sizeÚ
num_paramsièê(rê   rò   zNhttps://github.com/pytorch/vision/tree/main/references/classification#vit_b_16Ú_metricsúImageNet-1Kúacc@1gøSã¥›DT@úacc@5g1¬ZÔW@Ú_opsgªñÒMb�1@Ú
_file_sizegÃõ(\�¤t@Ú_docsú²
                These weights were trained from scratch by using a modified version of `DeIT
                <https://arxiv.org/abs/2012.12877>`_'s training recipe.
            ©ÚurlÚ
transformsrí   z>https://download.pytorch.org/models/vit_b_16_swag-9ac1b537.pthé€  ©rö   Úresize_sizeÚinterpolationiè^-gú~j¼tSU@gš™™™™iX@gË¡E¶ó½K@gî|?5^¶t@úË
                These weights are learnt via transfer learning by end-to-end fine-tuning the original
                `SWAG <https://arxiv.org/abs/2201.08371>`_ weights on ImageNet-1K data.
            zAhttps://download.pytorch.org/models/vit_b_16_lc_swag-4e70ced5.pthú+https://github.com/pytorch/vision/pull/5793gbX9´xT@gìQ¸…X@úã
                These weights are composed of the original frozen `SWAG <https://arxiv.org/abs/2201.08371>`_ trunk
                weights and a linear classifier learnt on top of them trained on ImageNet-1K data.
            r,   N©éà   r  )r  r  ©r-   r.   r/   r0   r   r   r   Ú_COMMON_METAÚIMAGENET1K_V1r   ÚBICUBICÚ_COMMON_SWAG_METAÚIMAGENET1K_SWAG_E2E_V1ÚIMAGENET1K_SWAG_LINEAR_V1ÚDEFAULTr4   r,   r+   r(   r   r   _  s_  † ÙØGÙÐ.¸#Ô>ð
Øð
à˜(Ø˜
ØÐfØØØ˜VØ˜Vð ðð �FØ˜'Øð ñ
ô€Mñ, %ØLÙØØØØ+×3Ñ3ô	
ð
Øð
à˜(Ø˜
ØØØ˜VØ˜Vð ðð �FØ˜'Øð ñ
ôÐñ4 !(ØOÙØØØØ+×3Ñ3ô	
ð
Øð
àÐCØ˜(Ø˜
ØØØ˜VØ˜Vð ðð �FØ˜'Øð ñ
ô!Ðð6 „Gr+   c                   óp   € ] tR tRt]! R]! ]^àR7      / ]CRRRRRRR	R
RRRR//RRRRRR/CR7      t]t	Rt
R# )r   i®  z9https://download.pytorch.org/models/vit_b_32-d86f8d99.pthrõ   r÷   iè1Brê   rò   zNhttps://github.com/pytorch/vision/tree/main/references/classification#vit_b_32rø   rù   rú   gî|?5^úR@rû   gçû©ñÒW@rü   g‰A`åÐ¢@rý   g‹lçû©	u@rþ   rÿ   r   r,   Nr
  ©r-   r.   r/   r0   r   r   r   r  r  r  r4   r,   r+   r(   r   r   ®  sq   † ÙØGÙÐ.¸#Ô>ð
Øð
à˜(Ø˜
ØÐfØØØ˜VØ˜Vð ðð �EØ˜'Øð ñ
ô€Mð, „Gr+   c                   óJ  € ] tR tRt]! R]! ]^à^òR7      / ]CRRRR&RRR	R
RRRR//RRRRRR/CR7      t]! R]! ]RR]	P                  R7      / ]CRRRR'R	R
RRRR//RRRRRR/CR7      t]! R]! ]^à^à]	P                  R7      / ]CRR RRRR&R	R
RR!RR"//RRRRRR#/CR7      t]tR$tR%# )(r   iÈ  z9https://download.pytorch.org/models/vit_l_16-852ce7e3.pth)rö   r  r÷   iè§#rê   rò   zNhttps://github.com/pytorch/vision/tree/main/references/classification#vit_l_16rø   rù   rú   gî|?5^êS@rû   gF¶óýÔ¨W@rü   g×£p=
ÇN@rý   g;ßO�$’@rþ   a  
                These weights were trained from scratch by using a modified version of TorchVision's
                `new training recipe
                <https://pytorch.org/blog/how-to-train-state-of-the-art-models-using-torchvision-latest-primitives/>`_.
            r   z>https://download.pytorch.org/models/vit_l_16_swag-4f3808c9.pthé   r  iè—0gj¼t“V@gTã¥›Ä X@g²�ï§ÆŸv@gyé&11’@r  zAhttps://download.pytorch.org/models/vit_l_16_lc_swag-4d563306.pthr  gÓMbXIU@g^ºI[X@r	  r,   Nr
  )r  r  r  r,   r+   r(   r   r   È  sa  † ÙØGÙÐ.¸#È3ÔOð
Øð
à˜)Ø˜
ØÐfØØØ˜VØ˜Vð ðð �FØ˜(Øð ñ
ô€Mñ. %ØLÙØØØØ+×3Ñ3ô	
ð
Øð
à˜)Ø˜
ØØØ˜VØ˜Vð ðð �GØ˜(Øð ñ
ôÐñ4 !(ØOÙØØØØ+×3Ñ3ô	
ð
Øð
àÐCØ˜)Ø˜
ØØØ˜VØ˜Vð ðð �FØ˜(Øð ñ
ô!Ðð6 „Gr+   c                   óp   € ] tR tRt]! R]! ]^àR7      / ]CRRRRRRR	R
RRRR//RRRRRR/CR7      t]t	Rt
R# )r   i  z9https://download.pytorch.org/models/vit_l_32-c7638314.pthrõ   r÷   iè[Erê   rò   zNhttps://github.com/pytorch/vision/tree/main/references/classification#vit_l_32rø   rù   rú   g‘í|?5>S@rû   g®GázDW@rü   g¨ÆK7‰Á.@rý   gžï§ÆËE’@rþ   rÿ   r   r,   Nr
  r  r,   r+   r(   r   r     sq   † ÙØGÙÐ.¸#Ô>ð
Øð
à˜)Ø˜
ØÐfØØØ˜VØ˜Uð ðð �FØ˜(Øð ñ
ô€Mð, „Gr+   c                   óò   € ] tR tRt]! R]! ]RR]P                  R7      / ]	CRRRR RR	R
RRR//RRRRRR/CR7      t
]! R]! ]^à^à]P                  R7      / ]	CRRRRRR!RR	R
RRR//RRRRRR/CR7      t]
tRtR# )"r   i2  z>https://download.pytorch.org/models/vit_h_14_swag-80465313.pthé  r  r÷   ièýÁ%rê   rø   rù   rú   gÙÎ÷S#V@rû   g#Ûù~j¬X@rü   gÛù~j¼Å�@rý   g¨ÆK7Iá¢@rþ   r  r   zAhttps://download.pytorch.org/models/vit_h_14_lc_swag-c1eb923e.pthrò   r  iè@¬%gZd;ßOmU@g…ëQ¸nX@g=
×£péd@gºIkÖ¢@r	  r,   N)r  r  r
  )r-   r.   r/   r0   r   r   r   r   r  r  r  r  r  r4   r,   r+   r(   r   r   2  sõ   † Ù$ØLÙØØØØ+×3Ñ3ô	
ð
Øð
à˜)Ø˜
ØØØ˜VØ˜Vð ðð �HØ˜(Øð ñ
ôÐñ4 !(ØOÙØØØØ+×3Ñ3ô	
ð
Øð
àÐCØ˜)Ø˜
ØØØ˜VØ˜Vð ðð �GØ˜(Øð ñ
ô!Ðð6 %„Gr+   Ú
pretrained)rä   rä   rå   Tc                ó^   € V ^8„  d   QhR\         \        ,          R\        R\        R\        /# ©r   rä   rå   ræ   rÌ   )r   r   rç   r   r   )r&   s   "r(   r)   r)   m  ó0   € ÷ ñ œÔ"2Õ3ð Ädð Ô]`ð Ôevñ r+   c                ó^   € \         P                  V 4      p \        R
R^R^R^RRRRRV R	V/VB # )au  
Constructs a vit_b_16 architecture from
`An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale <https://arxiv.org/abs/2010.11929>`_.

Args:
    weights (:class:`~torchvision.models.ViT_B_16_Weights`, optional): The pretrained
        weights to use. See :class:`~torchvision.models.ViT_B_16_Weights`
        below for more details and possible values. By default, no pre-trained weights are used.
    progress (bool, optional): If True, displays a progress bar of the download to stderr. Default is True.
    **kwargs: parameters passed to the ``torchvision.models.vision_transformer.VisionTransformer``
        base class. Please refer to the `source code
        <https://github.com/pytorch/vision/blob/main/torchvision/models/vision_transformer.py>`_
        for more details about this class.

.. autoclass:: torchvision.models.ViT_B_16_Weights
    :members:
r¨   r•   ro   rp   é   r:   é   rä   rå   r,   )r   Úverifyrñ   ©rä   rå   ræ   s   $$,r(   Úvit_b_16r$  k  óm   € ô( ×%Ñ% gÓ.€Gäñ 	Øð	àð	ð ð	ð ð		ð
 ð	ð ð	ð ð	ð ñ	ð 	r+   c                ó^   € V ^8„  d   QhR\         \        ,          R\        R\        R\        /# r  )r   r   rç   r   r   )r&   s   "r(   r)   r)   �  r  r+   c                ó^   € \         P                  V 4      p \        R
R^ R^R^RRRRRV R	V/VB # )au  
Constructs a vit_b_32 architecture from
`An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale <https://arxiv.org/abs/2010.11929>`_.

Args:
    weights (:class:`~torchvision.models.ViT_B_32_Weights`, optional): The pretrained
        weights to use. See :class:`~torchvision.models.ViT_B_32_Weights`
        below for more details and possible values. By default, no pre-trained weights are used.
    progress (bool, optional): If True, displays a progress bar of the download to stderr. Default is True.
    **kwargs: parameters passed to the ``torchvision.models.vision_transformer.VisionTransformer``
        base class. Please refer to the `source code
        <https://github.com/pytorch/vision/blob/main/torchvision/models/vision_transformer.py>`_
        for more details about this class.

.. autoclass:: torchvision.models.ViT_B_32_Weights
    :members:
r¨   r•   ro   rp   r   r:   r!  rä   rå   r,   )r   r"  rñ   r#  s   $$,r(   Úvit_b_32r(  �  r%  r+   c                ó^   € V ^8„  d   QhR\         \        ,          R\        R\        R\        /# r  )r   r   rç   r   r   )r&   s   "r(   r)   r)   ±  r  r+   c                ó^   € \         P                  V 4      p \        R
R^R^R^RRRRRV R	V/VB # )au  
Constructs a vit_l_16 architecture from
`An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale <https://arxiv.org/abs/2010.11929>`_.

Args:
    weights (:class:`~torchvision.models.ViT_L_16_Weights`, optional): The pretrained
        weights to use. See :class:`~torchvision.models.ViT_L_16_Weights`
        below for more details and possible values. By default, no pre-trained weights are used.
    progress (bool, optional): If True, displays a progress bar of the download to stderr. Default is True.
    **kwargs: parameters passed to the ``torchvision.models.vision_transformer.VisionTransformer``
        base class. Please refer to the `source code
        <https://github.com/pytorch/vision/blob/main/torchvision/models/vision_transformer.py>`_
        for more details about this class.

.. autoclass:: torchvision.models.ViT_L_16_Weights
    :members:
r¨   r•   ro   rp   é   r:   é   rä   rå   r,   )r   r"  rñ   r#  s   $$,r(   Úvit_l_16r-  ¯  óm   € ô( ×%Ñ% gÓ.€Gäñ 	Øð	àð	ð ð	ð ð		ð
 ð	ð ð	ð ð	ð ñ	ð 	r+   c                ó^   € V ^8„  d   QhR\         \        ,          R\        R\        R\        /# r  )r   r   rç   r   r   )r&   s   "r(   r)   r)   Ó  r  r+   c                ó^   € \         P                  V 4      p \        R
R^ R^R^RRRRRV R	V/VB # )au  
Constructs a vit_l_32 architecture from
`An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale <https://arxiv.org/abs/2010.11929>`_.

Args:
    weights (:class:`~torchvision.models.ViT_L_32_Weights`, optional): The pretrained
        weights to use. See :class:`~torchvision.models.ViT_L_32_Weights`
        below for more details and possible values. By default, no pre-trained weights are used.
    progress (bool, optional): If True, displays a progress bar of the download to stderr. Default is True.
    **kwargs: parameters passed to the ``torchvision.models.vision_transformer.VisionTransformer``
        base class. Please refer to the `source code
        <https://github.com/pytorch/vision/blob/main/torchvision/models/vision_transformer.py>`_
        for more details about this class.

.. autoclass:: torchvision.models.ViT_L_32_Weights
    :members:
r¨   r•   ro   rp   r+  r:   r,  rä   rå   r,   )r   r"  rñ   r#  s   $$,r(   Úvit_l_32r1  Ñ  r.  r+   c                ó^   € V ^8„  d   QhR\         \        ,          R\        R\        R\        /# r  )r   r   rç   r   r   )r&   s   "r(   r)   r)   õ  r  r+   c                ó^   € \         P                  V 4      p \        R
R^R^ R^RRRRRV R	V/VB # )au  
Constructs a vit_h_14 architecture from
`An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale <https://arxiv.org/abs/2010.11929>`_.

Args:
    weights (:class:`~torchvision.models.ViT_H_14_Weights`, optional): The pretrained
        weights to use. See :class:`~torchvision.models.ViT_H_14_Weights`
        below for more details and possible values. By default, no pre-trained weights are used.
    progress (bool, optional): If True, displays a progress bar of the download to stderr. Default is True.
    **kwargs: parameters passed to the ``torchvision.models.vision_transformer.VisionTransformer``
        base class. Please refer to the `source code
        <https://github.com/pytorch/vision/blob/main/torchvision/models/vision_transformer.py>`_
        for more details about this class.

.. autoclass:: torchvision.models.ViT_H_14_Weights
    :members:
r¨   r•   ro   rp   i   r:   i   rä   rå   r,   )r   r"  rñ   r#  s   $$,r(   Úvit_h_14r4  ó  r.  r+   c                óP   € V ^8„  d   QhR\         R\         RRR\        R\        RR/# )r   r§   r¨   Úmodel_statezOrderedDict[str, torch.Tensor]Úinterpolation_modeÚreset_headsrÌ   )r#   Ústrrç   )r&   s   "r(   r)   r)     sL   € ÷ Kñ KÜðKäðKð 2ðKô ð	Kô
 ðKð &ñKr+   c                ó:  € VR,          pVP                   w  rgpV^8w  d   \        RVP                    24      hW,          ^,          ^,           p	W—8w  EdG   V^,          pV	^,          p	VR	,          p
VR
,          pVP                  ^ ^^4      p\        \        P
                  ! V4      4      pWÌ,          V8w  d   \        RWÌ,           RV 24      hVP                  ^WŒV4      pW,          p\        P                  P                  VVVRR7      pVP                  ^W‰4      pVP                  ^ ^^4      p\        P                  ! W®.^R7      pWòR&   V'       dE   \        4       pVP                  4        F$  w  ppVP                  R4      '       d   K  VVV&   K&  	  TpV# )aw  This function helps interpolate positional embeddings during checkpoint loading,
especially when you want to apply a pre-trained model on images with different resolution.

Args:
    image_size (int): Image size of the new model.
    patch_size (int): Patch size of the new model.
    model_state (OrderedDict[str, torch.Tensor]): State dict of the pre-trained model.
    interpolation_mode (str): The algorithm used for upsampling. Default: bicubic.
    reset_heads (bool): If true, not copying the state of heads. Default: False.

Returns:
    OrderedDict[str, torch.Tensor]: A state dict which can be loaded into the new model.
zencoder.pos_embeddingz%Unexpected position embedding shape: zPseq_length is not a perfect square! Instead got seq_length_1d * seq_length_1d = z and seq_length = T)ÚsizeÚmodeÚalign_cornersrÜ   r¾   )rÞ   :Nr˜   NrÞ   )rÞ   :r˜   NNrÞ   )r‰   Ú
ValueErrorrÐ   r#   rÀ   rÁ   rÏ   r$   Ú
functionalÚinterpolaters   rà   r   ÚitemsÚ
startswith)r§   r¨   r6  r7  r8  rœ   rÑ   r”   rp   Únew_seq_lengthÚpos_embedding_tokenÚpos_embedding_imgÚseq_length_1dÚnew_seq_length_1dÚnew_pos_embedding_imgÚnew_pos_embeddingÚmodel_state_copyÚkÚvs   &&&&&              r(   Úinterpolate_embeddingsrM    sÑ  € ð*  Ð 7Õ8€MØ -× 3Ñ 3Ñ€A�:ØˆA„vÜÐ@À×ATÑATÐ@UÐVÓWÐWà Õ.°1Õ4°qÕ8€Nð
 Õ#à�a�ˆ
Ø˜!ÕˆØ+¨HÕ5ÐØ)¨(Õ3Ðð .×5Ñ5°a¸¸AÓ>ÐÜœDŸIšI jÓ1Ó2ˆØÕ(¨JÔ6ÜØbÐcpõ  dAð  cCð  CUð  V`ð  Uað  bóð ð
 .×5Ñ5°a¸ÐTaÓbÐØ&Õ4Ðô !#§¡× 9Ñ 9ØØ"Ø#Øð	 !:ó !
Ðð !6× =Ñ =¸aÀÓ \Ðð !6× =Ñ =¸aÀÀAÓ FÐÜ!ŸIšIÐ':Ð&RÐXYÔZÐà/@Ð+Ñ,çÜALÃÐØ#×)Ñ)Ö+‘��1Ø—|‘| G×,Ô,Ø*+Ð$ QÓ'ñ ,ð +ˆKàÐr+   c                ób   € V ^8„  d   Qh/ ^ \         9   d   \        \        \        3,          ;R&   # )r   r  )Ú__conditional_annotations__Údictr9  r   )r&   s   "r(   r)   r)      s&   € ‡�÷f
ò Œd”3œ�8�nñ òg
 r+   )r   r   r   r   r   r   r$  r(  r-  r1  r4  )r  N)ÚbicubicF)6rO  rÀ   Úcollectionsr   Ú	functoolsr   Útypingr   r   r   r   rs   Útorch.nnr$   Úops.miscr	   r
   Útransforms._presetsr   r   Úutilsr   Ú_apir   r   r   Ú_metar   Ú_utilsr   r   Ú__all__r   r7   r%   rk   r’   r   rñ   r  r  r   r   r   r   r   r  r$  r(  r-  r1  r4  rM  r)   )rO  s   @r(   Ú<module>r]     sE  øðß €Ý #Ý ß 6Ó 6ã Ý ç 0ß HÝ 'ß 6Ñ 6Ý 'ß Bò€ô9�Zô 9ô+
ˆsô +
ô\!�2—9‘9ô !ôH#9ˆb�i‰iô #9ôLQ˜Ÿ	™	ô QõhðB Ð&ð €ó ðØðàÐ8ØÐKñÐ ôL�{ô Lô^�{ô ô4M�{ô Mô`�{ô ô46%�{ô 6%ñr ÓÙ ,Ð0@×0NÑ0NÐ!OÔPð°dð ÈTö ó Qó ðñ@ ÓÙ ,Ð0@×0NÑ0NÐ!OÔPð°dð ÈTö ó Qó ðñ@ ÓÙ ,Ð0@×0NÑ0NÐ!OÔPð°dð ÈTö ó Qó ðñ@ ÓÙ ,Ð0@×0NÑ0NÐ!OÔPð°dð ÈTö ó Qó ðñ@ ÓÙÐ!5Ô6ð°dð ÈTö ó 7ó ð÷@Kñ Kr+   