+
    œ°³j£B  ã                   óŽ  € R t ^ RIt^ RIt^ RIHtHt ^RIHt ^RIH	t	 ^RI
HtHt ^RIHtHtHtHt ^RIHt ^RIHtHt ^R	IHt ^R
IHt ]P6                  ! ]4      t ! R R]P<                  4      t ! R R]P<                  4      t  ! R R]P<                  4      t! ! R R]P<                  4      t" ! R R]P<                  4      t# ! R R]P<                  4      t$ ! R R]P<                  4      t%] ! R R]4      4       t&] ! R R]&4      4       t']! RR7       ! R R ]&4      4       t(]! R!R7       ! R" R#]]&4      4       t). R$Ot*R# )%zPyTorch ResNet model.N)ÚTensorÚnn)Úinitialization)ÚACT2FN)ÚBackboneMixinÚfilter_output_hidden_states)ÚBackboneOutputÚBaseModelOutputWithNoAttentionÚ(BaseModelOutputWithPoolingAndNoAttentionÚ$ImageClassifierOutputWithNoAttention)ÚPreTrainedModel)Úauto_docstringÚlogging)Úcan_return_tuple©ÚResNetConfigc                   óT   a a€ ] tR t^'t oRV3R lV 3R llltV3R lR ltRtVtV ;t# )ÚResNetConvLayerc                ó–   <€ V ^8„  d   QhRS[ RS[ RS[ S[S[ S[ 3,          ,          RS[ RS[RS[ S[S[ S[ 3,          ,          RS[ RS[/# )	é   Úin_channelsÚout_channelsÚkernel_sizeÚstrideÚbiasÚdilationÚgroupsÚ
activation)ÚintÚtupleÚboolÚstr)ÚformatÚ__classdict__s   "€Úk/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/resnet/modeling_resnet.pyÚ__annotate__ÚResNetConvLayer.__annotate__(   s   ø€ ÷ Zñ ZáðZñ ðZñ ™5¡¡c �?Õ*ð	Zñ
 ðZñ ðZñ ™™c¡3˜h�Õ'ðZñ ðZñ ñZó    c	                ó  <€ \         S	V `  4        \        P                  ! VVVVV^,          VVVR7      V n        \        P
                  ! V4      V n        Ve   \        V,          V n	        R# \        P                  ! 4       V n	        R# )r   )r   r   r   r   Úpaddingr   r   r   N)
ÚsuperÚ__init__r   ÚConv2dÚconvolutionÚBatchNorm2dÚnormalizationr   ÚIdentityr   )
Úselfr   r   r   r   r   r   r   r   Ú	__class__s
   &&&&&&&&&€r$   r+   ÚResNetConvLayer.__init__(   sn   ø€ ô 	‰ÑÔÜŸ9š9Ø#Ø%Ø#ØØ 1Õ$ØØØô	
ˆÔô  Ÿ^š^¨LÓ9ˆÔØ0:Ò0Fœ& Õ,ˆŽÌBÏKÊKËMˆŽr'   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   Úhidden_statesÚreturn)Útorchr   )r"   r#   s   "€r$   r%   r&   A   s#   ø€ ÷ ñ ¡U§\¡\ð ±e·l±lñ r'   c                ól   € V P                  V4      pV P                  V4      pV P                  V4      pV# ©N)r-   r/   r   )r1   r5   s   &&r$   ÚforwardÚResNetConvLayer.forwardA   s6   € Ø×(Ñ(¨Ó7ˆØ×*Ñ*¨=Ó9ˆØŸ™¨Ó6ˆØÐr'   )r   r-   r/   )é   é   Fr=   r=   Úrelu©	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r+   r:   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r2   r#   s   @@r$   r   r   '   s    ù‡ € ÷Zõ Z÷2÷ ð r'   r   c                   óT   a a€ ] tR t^Ht 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	# )ÚResNetEmbeddingszG
ResNet Embeddings (stem) composed of a single aggressive convolution.
c                ó    <€ V ^8„  d   QhRS[ /# ©r   Úconfigr   )r"   r#   s   "€r$   r%   ÚResNetEmbeddings.__annotate__M   s   ø€ ÷ 0ñ 0™|ñ 0r'   c                óè   <€ \         SV `  4        \        VP                  VP                  ^^VP
                  R7      V n        \        P                  ! ^^^R7      V n	        VP                  V n        R# )é   )r   r   r   )r   r   r)   N)
r*   r+   r   Únum_channelsÚembedding_sizeÚ
hidden_actÚembedderr   Ú	MaxPool2dÚpooler©r1   rL   r2   s   &&€r$   r+   ÚResNetEmbeddings.__init__M   s\   ø€ Ü‰ÑÔÜ'Ø×Ñ ×!6Ñ!6ÀAÈaÐ\b×\mÑ\mô
ˆŒô —l’l¨q¸ÀAÔFˆŒØ"×/Ñ/ˆÖr'   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# )r   Úpixel_valuesr6   ©r   )r"   r#   s   "€r$   r%   rM   U   s   ø€ ÷ ñ ¡Fð ©vñ r'   c                ó¦   € VP                   ^,          pW P                  8w  d   \        R4      hV P                  V4      pV P	                  V4      pV# )r=   zeMake sure that the channel dimension of the pixel values match with the one set in the configuration.)ÚshaperP   Ú
ValueErrorrS   rU   )r1   rY   rP   Ú	embeddings   &&  r$   r:   ÚResNetEmbeddings.forwardU   sR   € Ø#×)Ñ)¨!Õ,ˆØ×,Ñ,Ô,ÜØwóð ð —M‘M ,Ó/ˆ	Ø—K‘K 	Ó*ˆ	ØÐr'   )rS   rP   rU   ©
r@   rA   rB   rC   Ú__doc__r+   r:   rD   rE   rF   rG   s   @@r$   rI   rI   H   s#   ù‡ € ñ÷0ó 0÷÷ ð r'   rI   c                   óX   a a€ ] tR t^`t oRtRV3R lV 3R llltV3R lR ltRtVtV ;t	# )ÚResNetShortCutz’
ResNet shortcut, used to project the residual features to the correct size. If needed, it is also used to
downsample the input using `stride=2`.
c                ó,   <€ V ^8„  d   QhRS[ RS[ RS[ /# )r   r   r   r   )r   )r"   r#   s   "€r$   r%   ÚResNetShortCut.__annotate__f   s"   ø€ ÷ :ñ :¡Cð :±sð :ÁCñ :r'   c                ó˜   <€ \         SV `  4        \        P                  ! W^VRR7      V n        \        P
                  ! V4      V n        R# )r=   F)r   r   r   N)r*   r+   r   r,   r-   r.   r/   )r1   r   r   r   r2   s   &&&&€r$   r+   ÚResNetShortCut.__init__f   s8   ø€ Ü‰ÑÔÜŸ9š9 [ÈAÐV\ÐchÔiˆÔÜŸ^š^¨LÓ9ˆÖr'   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# ©r   Úinputr6   rZ   )r"   r#   s   "€r$   r%   re   k   s   ø€ ÷ ñ ™Vð ©ñ r'   c                óJ   € V P                  V4      pV P                  V4      pV# r9   ©r-   r/   )r1   rj   Úhidden_states   && r$   r:   ÚResNetShortCut.forwardk   s(   € Ø×'Ñ'¨Ó.ˆØ×)Ñ)¨,Ó7ˆØÐr'   rl   )r   r`   rG   s   @@r$   rc   rc   `   s#   ù‡ € ñ÷
:õ :÷
÷ ð r'   rc   c                   óL   a a€ ] tR t^qt oRtRV3R lV 3R llltR tRtVtV ;t	# )ÚResNetBasicLayerzG
A classic ResNet's residual layer composed by two `3x3` convolutions.
c                ó2   <€ V ^8„  d   QhRS[ RS[ RS[ RS[/# )r   r   r   r   r   )r   r!   )r"   r#   s   "€r$   r%   ÚResNetBasicLayer.__annotate__v   s*   ø€ ÷ 
-ñ 
-¡Cð 
-±sð 
-ÁCð 
-ÑY\ñ 
-r'   c           	     ó,  <€ \         SV `  4        W8g  ;'       g    V^8g  pV'       d   \        WVR7      M\        P                  ! 4       V n        \        P                  ! \        WVR7      \        W"RR7      4      V n        \        V,          V n
        R# )r=   ©r   N©r   ©r*   r+   rc   r   r0   ÚshortcutÚ
Sequentialr   Úlayerr   r   )r1   r   r   r   r   Úshould_apply_shortcutr2   s   &&&&& €r$   r+   ÚResNetBasicLayer.__init__v   sv   ø€ Ü‰ÑÔØ +Ñ ;× JÐ J¸vÈ¹{ÐçH]ŒN˜;¸VÕDÔce×cnÒcnÓcpð 	Œô —]’]Ü˜K¸fÔEÜ˜LÀ4ÔHó
ˆŒ
ô ! Õ,ˆŽr'   c                ó€   € TpV P                  V4      pV P                  V4      pW,          pV P                  V4      pV# r9   ©ry   rw   r   ©r1   rm   Úresiduals   && r$   r:   ÚResNetBasicLayer.forward‚   ó?   € ØˆØ—z‘z ,Ó/ˆØ—=‘= Ó*ˆØÕ ˆØ—‘ |Ó4ˆØÐr'   ©r   ry   rw   )r=   r>   r`   rG   s   @@r$   rp   rp   q   s   ù‡ € ñ÷
-õ 
-÷ò r'   rp   c                   óL   a a€ ] tR t^‹t oRtRV3R lV 3R llltR tRtVtV ;t	# )ÚResNetBottleNeckLayera  
A classic ResNet's bottleneck layer composed by three `3x3` convolutions.

The first `1x1` convolution reduces the input by a factor of `reduction` in order to make the second `3x3`
convolution faster. The last `1x1` convolution remaps the reduced features to `out_channels`. If
`downsample_in_bottleneck` is true, downsample will be in the first layer instead of the second layer.
c                ó>   <€ V ^8„  d   QhRS[ RS[ RS[ RS[RS[ RS[/# )r   r   r   r   r   Ú	reductionÚdownsample_in_bottleneck)r   r!   r    )r"   r#   s   "€r$   r%   Ú"ResNetBottleNeckLayer.__annotate__”   sG   ø€ ÷ -ñ -áð-ñ ð-ñ ð	-ñ
 ð-ñ ð-ñ #'ñ-r'   c                ó€  <€ \         S	V `  4        W8g  ;'       g    V^8g  pW%,          pV'       d   \        WVR7      M\        P                  ! 4       V n        \        P                  ! \        Y^V'       d   TM^R7      \        YˆV'       g   TM^R7      \        W‚^RR7      4      V n        \        V,          V n
        R# )r=   rt   )r   r   N)r   r   rv   )
r1   r   r   r   r   r†   r‡   rz   Úreduces_channelsr2   s
   &&&&&&&  €r$   r+   ÚResNetBottleNeckLayer.__init__”   s£   ø€ ô 	‰ÑÔØ +Ñ ;× JÐ J¸vÈ¹{ÐØ'Õ4ÐçH]ŒN˜;¸VÕDÔce×cnÒcnÓcpð 	Œô —]’]ÜØ¸1×OgÁVÐmnôô Ð,×UmÁvÐstÔuÜÐ,ÈÐVZÔ[ó
ˆŒ
ô ! Õ,ˆŽr'   c                ó€   € TpV P                  V4      pV P                  V4      pW,          pV P                  V4      pV# r9   r}   r~   s   && r$   r:   ÚResNetBottleNeckLayer.forward¬   r�   r'   r‚   )r=   r>   é   Fr`   rG   s   @@r$   r„   r„   ‹   s   ù‡ € ñ÷-õ -÷0ò r'   r„   c                   óX   a a€ ] tR t^µt oRtRV3R lV 3R llltV3R lR ltRtVtV ;t	# )ÚResNetStagez,
A ResNet stage composed by stacked layers.
c          
      ó8   <€ V ^8„  d   QhRS[ RS[RS[RS[RS[/# )r   rL   r   r   r   Údepth)r   r   )r"   r#   s   "€r$   r%   ÚResNetStage.__annotate__º   s=   ø€ ÷ 
ñ 
áð
ñ ð
ñ ð	
ñ
 ð
ñ ñ
r'   c                ó’  <€ \         S	V `  4        VP                  R 8X  d   \        M\        pVP                  R 8X  d#   V! VVVVP
                  VP                  R7      pMV! W#WAP
                  R7      p\        P                  ! V.\        V^,
          4       Uu. uF  q†! W3VP
                  R7      NK  	  upO5!  V n
        R# u upi )Ú
bottleneck)r   r   r‡   )r   r   ru   N)r*   r+   Ú
layer_typer„   rp   rR   r‡   r   rx   ÚrangeÚlayers)
r1   rL   r   r   r   r’   ry   Úfirst_layerÚ_r2   s
   &&&&&&   €r$   r+   ÚResNetStage.__init__º   s¶   ø€ ô 	‰ÑÔà)/×):Ñ):¸lÔ)JÕ%ÔP`ˆà×Ñ Ô,ÙØØØØ!×,Ñ,Ø)/×)HÑ)Hô‰Kñ   À&×UfÑUfÔgˆKÜ—m’mØð
ÜdiÐjoÐrsÕjsÔdtÓuÑdtÐ_`˜5 È×HYÑHY×ZÑdtÑuó
ˆŽùÚus   ÂC
c                ó&   <€ V ^8„  d   QhRS[ RS[ /# ri   rZ   )r"   r#   s   "€r$   r%   r“   Ô   s   ø€ ÷ ñ ™Vð ©ñ r'   c                ó@   € TpV P                    F  pV! V4      pK  	  V# r9   ©r˜   )r1   rj   rm   ry   s   &&  r$   r:   ÚResNetStage.forwardÔ   s%   € ØˆØ—[”[ˆEÙ  Ó.ŠLñ !àÐr'   rž   )r   r   r`   rG   s   @@r$   r�   r�   µ   s#   ù‡ € ñ÷
õ 
÷4÷ ð r'   r�   c                   óT   a a€ ] tR t^Û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# )ÚResNetEncoderc                ó    <€ V ^8„  d   QhRS[ /# rK   r   )r"   r#   s   "€r$   r%   ÚResNetEncoder.__annotate__Ü   s   ø€ ÷ \ñ \™|ñ \r'   c           
     ó  <€ \         SV `  4        \        P                  ! . 4      V n        V P                  P                  \        TVP                  VP                  ^ ,          VP                  '       d   ^M^VP                  ^ ,          R7      4       \        VP                  VP                  R,          4      p\        W!P                  R,          4       F.  w  w  r4pV P                  P                  \        WWER7      4       K0  	  R# )é    )r   r’   ºr=   NN)r’   N)r*   r+   r   Ú
ModuleListÚstagesÚappendr�   rQ   Úhidden_sizesÚdownsample_in_first_stageÚdepthsÚzip)r1   rL   Úin_out_channelsr   r   r’   r2   s   &&    €r$   r+   ÚResNetEncoder.__init__Ü   sÈ   ø€ Ü‰ÑÔÜ—m’m BÓ'ˆŒà�‰×ÑÜØØ×%Ñ%Ø×#Ñ# AÕ&Ø"×<×<Ð<‘qÀ!Ø—m‘m AÕ&ôô	
ô ˜f×1Ñ1°6×3FÑ3FÀrÕ3JÓKˆÜ25°oÇ}Á}ÐUWÕGXÖ2YÑ.Ñ'ˆ[¨Ø�K‰K×Ñœ{¨6ÀÔZÖ[ó 3Zr'   c                ó2   <€ V ^8„  d   QhRS[ RS[RS[RS[/# )r   rm   Úoutput_hidden_statesÚreturn_dictr6   )r   r    r	   )r"   r#   s   "€r$   r%   r£   í   s-   ø€ ÷ 
ñ 
Ù"ð
Ù:>ð
ÙUYð
á	'ñ
r'   c                ó  € V'       d   RMR pV P                    F  pV'       d
   WA3,           pV! V4      pK  	  V'       d
   WA3,           pV'       g/   \        ;QJ d    . R W3 4       F  NK  	  5# ! R W3 4       4      # \        VVR7      # )Nc              3   ó0   "  € T F  qf   K  Vx € K  	  R # 5ir9   © )Ú.0Úvs   & r$   Ú	<genexpr>Ú(ResNetEncoder.forward.<locals>.<genexpr>ü   s   é € ÐSÑ$A˜qŸšÓ$Aùs   ‚Œ
)Úlast_hidden_stater5   rµ   )r¨   r   r	   )r1   rm   r±   r²   r5   Ústage_modules   &&&&  r$   r:   ÚResNetEncoder.forwardí   s   € ÷ 3™¸ˆà ŸKœKˆLß#Ø -°Õ ?�á'¨Ó5ŠLñ	 (÷  Ø)¨OÕ;ˆMçß”5ÑS \Ñ$AÓS—5ÐS�5ÑS \Ñ$AÓSÓSÐSä-Ø*Ø'ô
ð 	
r'   )r¨   )FTr?   rG   s   @@r$   r¡   r¡   Û   s    ù‡ € ÷\ó \÷"
÷ 
ò 
r'   r¡   c                   óz   a a€ ] tR tRt oRtRtR	tRR.t]P                  ! 4       V 3R l4       t
V3R ltRtVtV ;t# )
ÚResNetPreTrainedModeli  ÚresnetrY   r   rc   c                ó  <€ \         SV `  V4       \        V\        P                  4      '       d&   \
        P                  ! VP                  R RR7       R# \        V\        P                  4      '       dÇ   \
        P                  ! VP                  \        P                  ! ^4      R7       VP                  e�   \        P                  P
                  P                  VP                  4      w  r#V^ 8”  d   ^\        P                  ! V4      ,          M^ p\
        P                  ! VP                  V) V4       R# R# RVP                   P"                  9   d´   \
        P$                  ! VP                  4       \
        P&                  ! VP                  4       \
        P&                  ! VP(                  4       \
        P$                  ! VP*                  4       \-        VRR4      e#   \
        P&                  ! VP.                  4       R# R# R# )Úfan_outr>   )ÚmodeÚnonlinearity)ÚaNÚ	BatchNormÚnum_batches_tracked)r*   Ú_init_weightsÚ
isinstancer   r,   ÚinitÚkaiming_normal_ÚweightÚLinearÚkaiming_uniform_ÚmathÚsqrtr   r7   Ú_calculate_fan_in_and_fan_outÚuniform_r2   r@   Úones_Úzeros_Úrunning_meanÚrunning_varÚgetattrrÆ   )r1   ÚmoduleÚfan_inrš   Úboundr2   s   &&   €r$   rÇ   Ú#ResNetPreTrainedModel._init_weights  sI  ø€ ä‰Ñ˜fÔ%Ü�fœbŸi™i×(Ò(Ü× Ò  §¡°YÈV×Tä˜¤§	¡	×*Ò*Ü×!Ò! &§-¡-´4·9²9¸Q³<Õ@Ø�{‰{Ò&Ü!ŸH™HŸM™M×GÑGÈÏÉÓV‘	�Ø17¸!´˜œDŸIšI fÓ-Ö-À�Ü—’˜fŸk™k¨E¨6°5Ö9ñ 'ð
 ˜F×,Ñ,×5Ñ5Ô5Ü�JŠJ�v—}‘}Ô%Ü�KŠK˜Ÿ™Ô$Ü�KŠK˜×+Ñ+Ô,Ü�JŠJ�v×)Ñ)Ô*Ü�vÐ4°dÓ;ÒGÜ—’˜F×6Ñ6Ö7ñ Hñ 6r'   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # rK   r   )r"   r#   s   "€r$   r%   Ú"ResNetPreTrainedModel.__annotate__  s   ø‡ ‚ áÑò r'   rµ   )Úimage)r@   rA   rB   rC   Úbase_model_prefixÚmain_input_nameÚinput_modalitiesÚ_no_split_modulesr7   Úno_gradrÇ   Ú__annotate_func__rD   rE   rF   rG   s   @@r$   r¾   r¾     sC   ù‡ € ð !ÐØ$€OØ!ÐØ*Ð,<Ð=Ðà
‡]‚]ƒ_ô8ó ð8÷ … r'   r¾   c                   óR   a a€ ] tR tRt oV 3R lt]RV3R lR ll4       tRtVtV ;t	# )ÚResNetModeli"  c                óÈ   <€ \         SV `  V4       Wn        \        V4      V n        \        V4      V n        \        P                  ! R4      V n	        V P                  4        R# )r=   N)r=   r=   )r*   r+   rL   rI   rS   r¡   Úencoderr   ÚAdaptiveAvgPool2drU   Ú	post_initrV   s   &&€r$   r+   ÚResNetModel.__init__$  sI   ø€ Ü‰Ñ˜Ô ØŒÜ(¨Ó0ˆŒÜ$ VÓ,ˆŒÜ×*Ò*¨6Ó2ˆŒà�‰Ör'   c                óN   <€ V ^8„  d   QhRS[ RS[R,          RS[R,          RS[/# ©r   rY   r±   Nr²   r6   )r   r    r
   )r"   r#   s   "€r$   r%   ÚResNetModel.__annotate__.  s;   ø€ ÷ 
ñ 
áð
ñ # T�kð
ñ ˜D•[ð	
ñ 
2ñ
r'   c                óP  € Ve   TMV P                   P                  pVe   TMV P                   P                  pV P                  V4      pV P	                  WRVR7      pV^ ,          pV P                  V4      pV'       g   Wx3VR,          ,           # \        VVVP                  R7      # )N©r±   r²   r¦   )rº   Úpooler_outputr5   )rL   r±   r²   rS   rç   rU   r
   r5   )	r1   rY   r±   r²   ÚkwargsÚembedding_outputÚencoder_outputsrº   Úpooled_outputs	   &&&&,    r$   r:   ÚResNetModel.forward-  s¬   € ð %9Ò$DÑ È$Ï+É+×JjÑJjð 	ð &1Ò%<‘kÀ$Ç+Á+×BYÑBYˆàŸ=™=¨Ó6ÐàŸ,™,ØÐU`ð 'ó 
ˆð ,¨AÕ.ÐàŸ™Ð$5Ó6ˆçØ%Ð5¸ÈÕ8KÕKÐKä7Ø/Ø'Ø)×7Ñ7ô
ð 	
r'   )rL   rS   rç   rU   ©NN©
r@   rA   rB   rC   r+   r   r:   rD   rE   rF   rG   s   @@r$   rå   rå   "  s(   ù‡ € õð ÷
ñ 
ó ÷
ð 
r'   rå   z†
    ResNet Model with an image classification head on top (a linear layer on top of the pooled features), e.g. for
    ImageNet.
    )Úcustom_introc                   óR   a a€ ] tR tRt oV 3R lt]RV3R lR ll4       tRtVtV ;t	# )ÚResNetForImageClassificationiN  c                ó’  <€ \         SV `  V4       VP                  V n        \        V4      V n        \
        P                  ! \
        P                  ! 4       VP                  ^ 8”  d3   \
        P                  ! VP                  R,          VP                  4      M\
        P                  ! 4       4      V n        V P                  4        R# )r¥   Néÿÿÿÿ)r*   r+   Ú
num_labelsrå   r¿   r   rx   ÚFlattenrÌ   rª   r0   Ú
classifierré   rV   s   &&€r$   r+   Ú%ResNetForImageClassification.__init__U  s‡   ø€ Ü‰Ñ˜Ô Ø ×+Ñ+ˆŒÜ! &Ó)ˆŒäŸ-š-Ü�JŠJ‹LØEK×EVÑEVÐYZÔEZŒB�IŠI�f×)Ñ)¨"Õ-¨v×/@Ñ/@ÔAÔ`b×`kÒ`kÓ`mó
ˆŒð
 	�‰Ör'   c          
      ó˜   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[R,          RS[R,          RS[/# )r   rY   NÚlabelsr±   r²   r6   )r7   ÚFloatTensorÚ
LongTensorr    r   )r"   r#   s   "€r$   r%   Ú)ResNetForImageClassification.__annotate__b  sb   ø€ ÷ sñ sá×'Ñ'¨$Õ.ðsñ × Ñ  4Õ'ðsñ # T�kð	sñ
 ˜D•[ðsñ 
.ñsr'   c                ó€  € Ve   TMV P                   P                  pV P                  WVR7      pV'       d   VP                  MV^,          pV P	                  V4      pRp	Ve   V P                  W(V P                   4      p	V'       g"   V3VR,          ,           p
V	e   V	3V
,           # T
# \        W˜VP                  R7      # )a  
labels (`torch.LongTensor` of shape `(batch_size,)`, *optional*):
    Labels for computing the image classification/regression loss. Indices should be in `[0, ...,
    config.num_labels - 1]`. If `config.num_labels > 1` a classification loss is computed (Cross-Entropy).
Nrï   :r   NN)ÚlossÚlogitsr5   )rL   r²   r¿   rð   rÿ   Úloss_functionr   r5   )r1   rY   r  r±   r²   rñ   Úoutputsrô   r  r  Úoutputs   &&&&&,     r$   r:   Ú$ResNetForImageClassification.forwarda  s­   € ð &1Ò%<‘kÀ$Ç+Á+×BYÑBYˆà—+‘+˜lÐcn�+Óoˆç1<˜×-Ò-À'È!Å*ˆà—‘ Ó/ˆàˆàÒØ×%Ñ% f°d·k±kÓBˆDçØ�Y ¨¥Õ,ˆFØ'+Ò'7�D�7˜VÕ#ÐC¸VÐCä3¸Ð\c×\qÑ\qÔrÐrr'   )rÿ   rý   r¿   )NNNNr÷   rG   s   @@r$   rú   rú   N  s,   ù‡ € õ
ð ÷sñ só ÷sð sr'   rú   zO
    ResNet backbone, to be used with frameworks like DETR and MaskFormer.
    c                   ój   a a€ ] tR tRt oRtV 3R lt]]]RV3R lR ll4       4       4       t	Rt
VtV ;t# )ÚResNetBackboneiƒ  Fc                óÌ   <€ \         SV `  V4       VP                  .VP                  ,           V n        \        V4      V n        \        V4      V n        V P                  4        R # r9   )
r*   r+   rQ   rª   Únum_featuresrI   rS   r¡   rç   ré   rV   s   &&€r$   r+   ÚResNetBackbone.__init__‹  sP   ø€ Ü‰Ñ˜Ô à#×2Ñ2Ð3°f×6IÑ6IÕIˆÔÜ(¨Ó0ˆŒÜ$ VÓ,ˆŒð 	�‰Ör'   c                óN   <€ V ^8„  d   QhRS[ RS[R,          RS[R,          RS[/# rì   )r   r    r   )r"   r#   s   "€r$   r%   ÚResNetBackbone.__annotate__˜  s;   ø€ ÷ ;
ñ ;
áð;
ñ # T�kð;
ñ ˜D•[ð	;
ñ 
ñ;
r'   c                óø  € Ve   TMV P                   P                  pVe   TMV P                   P                  pV P                  V4      pV P	                  VRRR7      pVP
                  pRp\        V P                  4       F'  w  ršW P                  9   g   K  W‡V	,          3,          pK)  	  V'       g!   V3pV'       d   W¶P
                  3,          pV# \        TV'       d   VP
                  RR7      # RRR7      # )aÒ  
Examples:

```python
>>> from transformers import AutoImageProcessor, AutoBackbone
>>> import torch
>>> from PIL import Image
>>> import httpx
>>> from io import BytesIO

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))

>>> processor = AutoImageProcessor.from_pretrained("microsoft/resnet-50")
>>> model = AutoBackbone.from_pretrained(
...     "microsoft/resnet-50", out_features=["stage1", "stage2", "stage3", "stage4"]
... )

>>> inputs = processor(image, return_tensors="pt")

>>> outputs = model(**inputs)
>>> feature_maps = outputs.feature_maps
>>> list(feature_maps[-1].shape)
[1, 2048, 7, 7]
```NTrï   )Úfeature_mapsr5   Ú
attentionsrµ   )
rL   r²   r±   rS   rç   r5   Ú	enumerateÚstage_namesÚout_featuresr   )r1   rY   r±   r²   rñ   rò   r
  r5   r  ÚidxÚstager  s   &&&&,       r$   r:   ÚResNetBackbone.forward•  sò   € ðH &1Ò%<‘kÀ$Ç+Á+×BYÑBYˆà$8Ò$DÑ È$Ï+É+×JjÑJjð 	ð  Ÿ=™=¨Ó6Ðà—,‘,Ð/ÀdÐX\�,Ó]ˆà×-Ñ-ˆàˆÜ# D×$4Ñ$4Ö5‰JˆCØ×)Ñ)Ö)Ø¨sÕ!3Ð 5Õ5’ñ 6÷ Ø"�_ˆFß#Ø×0Ñ0Ð2Õ2�ØˆMäØ%ß3G˜'×/Ñ/Øô
ð 	
àMQØô
ð 	
r'   )rS   rç   r  rö   )r@   rA   rB   rC   Úhas_attentionsr+   r   r   r   r:   rD   rE   rF   rG   s   @@r$   r  r  ƒ  s?   ù‡ € ð €Nõð Ø Ø÷;
ñ ;
ó ó !ó ÷;
ð ;
r'   r  )rú   rå   r¾   r  )+ra   rÎ   r7   r   r   Ú r   rÉ   Úactivationsr   Úbackbone_utilsr   r   Úmodeling_outputsr   r	   r
   r   Úmodeling_utilsr   Úutilsr   r   Úutils.genericr   Úconfiguration_resnetr   Ú
get_loggerr@   ÚloggerÚModuler   rI   rc   rp   r„   r�   r¡   r¾   rå   rú   r  Ú__all__rµ   r'   r$   Ú<module>r*     sP  ðñ ã ã ß å &Ý !ß H÷ó õ .ß ,Ý -Ý .ð 
×	Ò	˜HÓ	%€ô�b—i‘iô ôB�r—y‘yô ô0�R—Y‘Yô ô"�r—y‘yô ô4'˜BŸI™Iô 'ôT#�"—)‘)ô #ôL&
�B—I‘Iô &
ðR ô8˜Oó 8ó ð8ð: ô(
Ð'ó (
ó ð(
ñV ðôô,sÐ#8ó ,sóð,sñ^ ðôô
K
�]Ð$9ó K
óð
K
ò\ e‚r'   