+
    œ°³jš=  ã                   ód  € R t ^ RIt^ RI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 ^R	IHtHtHt ^R
IHtHt ^RIHt ^RIHt ]P>                  ! ] 4      t! ! R R]PD                  4      t# ! R R]PH                  4      t% ! R R]PH                  4      t& ! R R]PH                  4      t' ! R R]PH                  4      t(] ! R R]4      4       t) ! R R])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 ConvNext model.N)Únn)Úinitialization)ÚACT2FN)ÚBackboneMixinÚfilter_output_hidden_states)ÚBackboneOutputÚBaseModelOutputWithNoAttentionÚ(BaseModelOutputWithPoolingAndNoAttentionÚ$ImageClassifierOutputWithNoAttention)ÚPreTrainedModel)ÚUnpack)ÚTransformersKwargsÚauto_docstringÚlogging)Úcan_return_tupleÚmerge_with_config_defaults)Úcapture_outputs©ÚConvNextConfigc                   óZ   a a€ ] tR t^'t oRtRRRR/V 3R lltV3R lV 3R lltR	tVtV ;t	# )
ÚConvNextLayerNorma5  LayerNorm that supports two data formats: channels_last (default) or channels_first.
The ordering of the dimensions in the inputs. channels_last corresponds to inputs with shape (batch_size, height,
width, channels) while channels_first corresponds to inputs with shape (batch_size, channels, height, width).
Úepsç�íµ ÷Æ°>Údata_formatÚchannels_lastc               ód   <€ \         SV `  ! V3R V/VB  VR9  d   \        RV 24      hW0n        R# )r   zUnsupported data format: N)r   Úchannels_first)ÚsuperÚ__init__ÚNotImplementedErrorr   )ÚselfÚnormalized_shaper   r   ÚkwargsÚ	__class__s   &&$$,€Úo/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/convnext/modeling_convnext.pyr   ÚConvNextLayerNorm.__init__-   s=   ø€ Ü‰ÒÐ)Ñ=¨sÐ=°fÒ=ØÐAÔAÜ%Ð(AÀ+ÀÐ&OÓPÐPØ&Öó    c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# ©é   ÚfeaturesÚreturn©ÚtorchÚTensor)ÚformatÚ__classdict__s   "€r$   Ú__annotate__ÚConvNextLayerNorm.__annotate__3   s#   ø€ ÷ ñ ¡§¡ð ±·±ñ r&   c                óº   <€ V P                   R8X  d:   VP                  ^ ^^^4      p\        SV `  V4      pVP                  ^ ^^^4      pV# \        SV `  V4      pV# )zt
Args:
    features: Tensor of shape (batch_size, channels, height, width) OR (batch_size, height, width, channels)
r   )r   Úpermuter   Úforward)r    r*   r#   s   &&€r$   r5   ÚConvNextLayerNorm.forward3   sj   ø€ ð
 ×ÑÐ/Ô/Ø×'Ñ'¨¨1¨a°Ó3ˆHÜ‘w‘ xÓ0ˆHØ×'Ñ'¨¨1¨a°Ó3ˆHð ˆô ‘w‘ xÓ0ˆHØˆr&   ©r   ©
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r5   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r#   r0   s   @@r$   r   r   '   s,   ù‡ € ñð
'°ð 'À/÷ '÷÷ ó r&   r   c                   óH   a a€ ] tR t^At oRtV 3R ltV3R lR ltRtVtV ;t	# )ÚConvNextEmbeddingszThis class is comparable to (and inspired by) the SwinEmbeddings class
found in src/transformers/models/swin/modeling_swin.py.
c                ó*  <€ \         SV `  4        \        P                  ! VP                  VP
                  ^ ,          VP                  VP                  R7      V n        \        VP
                  ^ ,          RRR7      V n	        VP                  V n        R# )é    ©Úkernel_sizeÚstrider   r   ©r   r   N)
r   r   r   ÚConv2dÚnum_channelsÚhidden_sizesÚ
patch_sizeÚpatch_embeddingsr   Ú	layernorm©r    Úconfigr#   s   &&€r$   r   ÚConvNextEmbeddings.__init__F   sr   ø€ Ü‰ÑÔÜ "§	¢	Ø×Ñ ×!4Ñ!4°QÕ!7ÀV×EVÑEVÐ_e×_pÑ_pô!
ˆÔô +¨6×+>Ñ+>¸qÕ+AÀtÐYiÔjˆŒØ"×/Ñ/ˆÖr&   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r)   Úpixel_valuesr+   )r-   ÚFloatTensorr.   )r/   r0   s   "€r$   r1   ÚConvNextEmbeddings.__annotate__N   s%   ø€ ÷ ñ ¡E×$5Ñ$5ð ¹%¿,¹,ñ r&   c                ó¦   € VP                   ^,          pW P                  8w  d   \        R4      hV P                  V4      pV P	                  V4      pV# )é   zeMake sure that the channel dimension of the pixel values match with the one set in the configuration.)ÚshaperK   Ú
ValueErrorrN   rO   )r    rT   rK   Ú
embeddingss   &&  r$   r5   ÚConvNextEmbeddings.forwardN   sT   € Ø#×)Ñ)¨!Õ,ˆØ×,Ñ,Ô,ÜØwóð ð ×*Ñ*¨<Ó8ˆ
Ø—^‘^ JÓ/ˆ
ØÐr&   )rO   rK   rN   r8   rA   s   @@r$   rC   rC   A   s   ù‡ € ñõ0÷÷ ð r&   rC   c                   ój   a a€ ] tR t^Zt oRtR	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
# )
ÚConvNextDropPathzÃStochastic depth (DropPath) per sample, for residual blocks.

Identity when ``drop_prob`` is 0 or outside training. See `Deep Networks with Stochastic Depth
<https://arxiv.org/abs/1603.09382>`_.
c                ó$   <€ V ^8„  d   QhRS[ RR/# )r)   Ú	drop_probr+   N)Úfloat)r/   r0   s   "€r$   r1   ÚConvNextDropPath.__annotate__a   s   ø€ ÷ #ñ #¡%ð #°$ñ #r&   c                ó0   <€ \         SV `  4        Wn        R # ©N)r   r   r`   )r    r`   r#   s   &&€r$   r   ÚConvNextDropPath.__init__a   s   ø€ Ü‰ÑÔØ"Žr&   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r)   Úhidden_statesr+   r,   )r/   r0   s   "€r$   r1   rb   e   s#   ø€ ÷ <ñ <¡U§\¡\ð <±e·l±lñ <r&   c                ó˜  € V P                   R 8X  g   V P                  '       g   V# ^V P                   ,
          pVP                  ^ ,          3RVP                  ^,
          ,          ,           p\        P
                  ! W1P                  VP                  R7      p\        P                  ! WB,           4      pVP                  V4      V,          # )ç        )ÚdtypeÚdevice)rX   )
r`   ÚtrainingrY   Úndimr-   Úrandrj   rk   ÚfloorÚdiv)r    rg   Ú	keep_probrY   Úrandom_tensors   &&   r$   r5   ÚConvNextDropPath.forwarde   s•   € Ø�>‰>˜SÔ ¨¯¯¨Ø Ð Ø˜Ÿ™Õ&ˆ	Ø×$Ñ$ QÕ'Ð)¨D°M×4FÑ4FÈÕ4JÕ,KÕKˆÜŸ
š
 5×0CÑ0CÈM×L`ÑL`ÔaˆÜŸš MÕ$=Ó>ˆØ× Ñ  Ó+¨mÕ;Ð;r&   c                ó    <€ V ^8„  d   QhRS[ /# )r)   r+   )Ústr)r/   r0   s   "€r$   r1   rb   n   s   ø€ ÷ %ñ %™Cñ %r&   c                ó    € R V P                    2# )zp=©r`   )r    s   &r$   Ú
extra_reprÚConvNextDropPath.extra_reprn   s   € Ø�D—N‘NÐ#Ð$Ð$r&   rw   )ri   )r9   r:   r;   r<   r=   r   r5   rx   r>   r?   r@   rA   s   @@r$   r^   r^   Z   s-   ù‡ € ñ÷#õ #÷<ð <÷%÷ %ð %r&   r^   c                   óL   a a€ ] tR t^rt oRtRV 3R lltV3R lR ltRtVtV ;t	# )ÚConvNextLayera  This corresponds to the `Block` class in the original implementation.

There are two equivalent implementations: [DwConv, LayerNorm (channels_first), Conv, GELU,1x1 Conv]; all in (N, C,
H, W) (2) [DwConv, Permute to (N, H, W, C), LayerNorm (channels_last), Linear, GELU, Linear]; Permute back

The authors used (2) as they find it slightly faster in PyTorch.

Args:
    config ([`ConvNextConfig`]): Model configuration class.
    dim (`int`): Number of input channels.
    drop_path (`float`): Stochastic depth rate. Default: 0.0.
c                óZ  <€ \         SV `  4        \        P                  ! W"^^VR7      V n        \        VRR7      V n        \        P                  ! V^V,          4      V n        \        VP                  ,          V n        \        P                  ! ^V,          V4      V n        VP                  ^ 8”  d>   \        P                  ! VP                  \        P                   ! V4      ,          RR7      MRV n        VR8”  d   \%        V4      V n        R# \        P&                  ! 4       V n        R# )é   )rG   ÚpaddingÚgroupsr   ©r   T)Úrequires_gradNri   )r   r   r   rJ   Údwconvr   rO   ÚLinearÚpwconv1r   Ú
hidden_actÚactÚpwconv2Úlayer_scale_init_valueÚ	Parameterr-   ÚonesÚlayer_scale_parameterr^   ÚIdentityÚ	drop_path)r    rQ   Údimr�   r#   s   &&&&€r$   r   ÚConvNextLayer.__init__€   sÑ   ø€ Ü‰ÑÔÜ—i’i °aÀÈ3ÔOˆŒÜ*¨3°DÔ9ˆŒÜ—y’y  a¨#¥gÓ.ˆŒÜ˜&×+Ñ+Õ,ˆŒÜ—y’y  S¥¨#Ó.ˆŒð ×,Ñ,¨qÔ0ô �LŠL˜×6Ñ6¼¿ºÀC»ÕHÐX\Õ]àð 	Ô"ð
 9BÀC¼Ô)¨)Ó4ˆŽÌRÏ[Ê[Ë]ˆŽr&   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# r(   r,   )r/   r0   s   "€r$   r1   ÚConvNextLayer.__annotate__Ž   s#   ø€ ÷ ñ ¡§¡ð ±·±ñ r&   c                ót  € TpV P                  V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                  e   V P                  V,          pVP                  ^ ^^^4      pW P                  V4      ,           pV# ©rE   )r‚   r4   rO   r„   r†   r‡   r‹   r�   )r    r*   Úresiduals   && r$   r5   ÚConvNextLayer.forwardŽ   s«   € ØˆØ—;‘;˜xÓ(ˆØ×#Ñ# A q¨!¨QÓ/ˆØ—>‘> (Ó+ˆØ—<‘< Ó)ˆØ—8‘8˜HÓ%ˆØ—<‘< Ó)ˆØ×%Ñ%Ò1Ø×1Ñ1°HÕ<ˆHØ×#Ñ# A q¨!¨QÓ/ˆØŸn™n¨XÓ6Õ6ˆØˆr&   )r†   r�   r‚   r‹   rO   r„   r‡   r“   r8   rA   s   @@r$   r{   r{   r   s   ù‡ € ñ÷[÷÷ ð r&   r{   c                   óL   a a€ ] tR t^�t oRtRV 3R lltV3R lR ltRtVtV ;t	# )ÚConvNextStagea}  ConvNeXT stage, consisting of an optional downsampling layer + multiple residual blocks.

Args:
    config ([`ConvNextConfig`]): Model configuration class.
    in_channels (`int`): Number of input channels.
    out_channels (`int`): Number of output channels.
    depth (`int`): Number of residual blocks.
    drop_path_rates(`list[float]`): Stochastic depth rates for each layer.
c                ó®  <€ \         S	V `  4        W#8w  g   V^8”  dA   \        P                  ! \	        VRRR7      \        P
                  ! W#WER7      .4      V n        M\        P                  ! 4       V n        T;'       g    R.V,          p\        P                  ! \        V4       Uu. uF  p\        WWx,          R7      NK  	  up4      V n	        R# u upi )rX   r   r   rI   rF   ri   )rŽ   r�   N)
r   r   r   Ú
ModuleListr   rJ   Údownsampling_layerÚranger{   Úlayers)
r    rQ   Úin_channelsÚout_channelsrG   rH   ÚdepthÚdrop_path_ratesÚjr#   s
   &&&&&&&& €r$   r   ÚConvNextStage.__init__¨   s¦   ø€ Ü‰ÑÔàÔ&¨&°1¬*Ü&(§m¢mä% k°tÐIYÔZÜ—I’I˜kÀ[Ô`ðó'ˆDÕ#ô ')§m¢m£oˆDÔ#Ø)×:Ð:¨c¨U°U­]ˆÜ—m’mÜ\aÐbgÔ\hÓiÑ\hÐWXŒ]˜6¸Õ?Q×RÑ\hÑió
ˆŽùÚis   Â(Cc                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# r(   r,   )r/   r0   s   "€r$   r1   ÚConvNextStage.__annotate__¹   s#   ø€ ÷ ñ ¡§¡ð ±·±ñ r&   c                ór   € V P                    F  pV! V4      pK  	  V P                   F  pV! V4      pK  	  V# rd   ©rš   rœ   )r    r*   Úlayers   && r$   r5   ÚConvNextStage.forward¹   s7   € Ø×,Ô,ˆEÙ˜X“ŠHñ -à—[”[ˆEÙ˜X“ŠHñ !àˆr&   r¦   )r)   r)   r)   Nr8   rA   s   @@r$   r—   r—   �   s   ù‡ € ñ÷
÷"÷ ð r&   r—   c                   óz   a a€ ] tR t^Á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# )	ÚConvNextPreTrainedModelÚconvnextrT   r{   r—   c                óà   <€ \         SV `  V4       \        V\        4      '       dH   VP                  e8   \
        P                  ! VP                  V P                  P                  4       R# R# R# )zInitialize the weightsN)	r   Ú_init_weightsÚ
isinstancer{   r‹   ÚinitÚ	constant_rQ   rˆ   )r    Úmoduler#   s   &&€r$   r­   Ú%ConvNextPreTrainedModel._init_weightsÉ   sS   ø€ ô 	‰Ñ˜fÔ%Ü�fœm×,Ò,Ø×+Ñ+Ò7Ü—’˜v×;Ñ;¸T¿[¹[×=_Ñ=_Ö`ñ 8ñ -r&   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # )r)   rQ   r   )r/   r0   s   "€r$   r1   Ú$ConvNextPreTrainedModel.__annotate__Á   s   ø‡ ‚ áÑò r&   © )Úimage)r9   r:   r;   r<   Úbase_model_prefixÚmain_input_nameÚinput_modalitiesÚ_no_split_modulesr-   Úno_gradr­   Ú__annotate_func__r>   r?   r@   rA   s   @@r$   rª   rª   Á   sD   ù‡ € ð #ÐØ$€OØ!ÐØ(¨/Ð:Ðà
‡]‚]ƒ_ôaó ða÷ … r&   rª   c                   ór   a a€ ] tR t^Òt oRtR]/tV 3R lt]]	! RR7      V3R lR l4       4       t
RtVtV ;t# )ÚConvNextEncoderrg   c           
     ó~  <€ \         SV `  V4       \        P                  ! 4       V n        \
        P                  ! ^ VP                  \        VP                  4      RR7      P                  VP                  4       Uu. uF  pVP                  4       NK  	  ppVP                  ^ ,          p\        VP                  4       Fd  pVP                  V,          p\        TTTV^ 8”  d   ^M^VP                  V,          W5,          R7      pV P                  P!                  V4       TpKf  	  V P#                  4        R# u upi )rE   Úcpu)rk   )r�   rž   rH   rŸ   r    N)r   r   r   r™   Ústagesr-   ÚlinspaceÚdrop_path_rateÚsumÚdepthsÚsplitÚtolistrL   r›   Ú
num_stagesr—   ÚappendÚ	post_init)	r    rQ   Úxr    Úprev_chsÚiÚout_chsÚstager#   s	   &&      €r$   r   ÚConvNextEncoder.__init__Ö   s  ø€ Ü‰Ñ˜Ô Ü—m’m“oˆŒô —^’^ A v×'<Ñ'<¼cÀ&Ç-Á-Ó>PÐY^Ô_×eÑeÐfl×fsÑfsÔtó
át�ð �H‰HŽJÙtð 	ð 
ð ×&Ñ& qÕ)ˆÜ�v×(Ñ(Ö)ˆAØ×)Ñ)¨!Õ,ˆGÜ!ØØ$Ø$Ø œE‘q qØ—m‘m AÕ&Ø /Õ 2ôˆEð �K‰K×Ñ˜uÔ%ØŠHñ *ð 	�‰Öùò%
s   Á=D:F)Útie_last_hidden_statesc                óP   <€ V ^8„  d   QhRS[ P                  RS[S[,          RS[/# )r)   rg   r"   r+   )r-   r.   r   r   r   )r/   r0   s   "€r$   r1   ÚConvNextEncoder.__annotate__ï   s8   ø€ ÷ Oñ Oá—|‘|ðOñ Ñ+Õ,ðOñ 
(ñ	Or&   c                óP   € V P                    F  pV! V4      pK  	  \        VR 7      # ))Úlast_hidden_state)rÁ   r   )r    rg   r"   Úlayer_modules   &&, r$   r5   ÚConvNextEncoder.forwardí   s)   € ð !ŸKœKˆLÙ(¨Ó7ŠMñ (ô .ÀÔNÐNr&   )rÁ   )r9   r:   r;   r<   r¸   r—   Ú_can_record_outputsr   r   r   r5   r>   r?   r@   rA   s   @@r$   r¾   r¾   Ò   sC   ù‡ € Ø%€OØ*¨MÐ:Ðõð.  Ù¨EÔ2÷Oó 3ó  ÷Oð Or&   r¾   c                   ó\   a a€ ] tR t^út oV 3R lt]]RV3R lR ll4       4       tRtVt	V ;t
# )ÚConvNextModelc                ó  <€ \         SV `  V4       Wn        \        V4      V n        \        V4      V n        \        P                  ! VP                  R,          VP                  R7      V n        V P                  4        R# )rX   r€   Néÿÿÿÿ)r   r   rQ   rC   r[   r¾   Úencoderr   Ú	LayerNormrL   Úlayer_norm_epsrO   rÊ   rP   s   &&€r$   r   ÚConvNextModel.__init__ü   s^   ø€ Ü‰Ñ˜Ô ØŒä,¨VÓ4ˆŒÜ& vÓ.ˆŒô Ÿš f×&9Ñ&9¸"Õ&=À6×CXÑCXÔYˆŒð 	�‰Ör&   c                ó^   <€ V ^8„  d   QhRS[ P                  R,          RS[S[,          RS[/# )r)   rT   Nr"   r+   )r-   rU   r   r   r	   )r/   r0   s   "€r$   r1   ÚConvNextModel.__annotate__  s6   ø€ ÷ 
ñ 
Ù!×-Ñ-°Õ4ð
ÙGMÑN`ÕGað
á	1ñ
r&   c                óô   € Vf   \        R4      hV P                  V4      pV P                  ! V3/ VB pVP                  pV P	                  VP                  RR.4      4      p\        VVVP                  R7      # )Nz You have to specify pixel_values)rÕ   Úpooler_outputrg   éþÿÿÿrÜ   )rZ   r[   rÝ   rÕ   rO   Úmeanr	   rg   )r    rT   r"   Úembedding_outputÚencoder_outputsrÕ   Úpooled_outputs   &&,    r$   r5   ÚConvNextModel.forward	  s‚   € ð
 ÒÜÐ?Ó@Ð@àŸ?™?¨<Ó8ÐØ:>¿,º,ÐGWÑ:bÐ[aÑ:bˆØ+×=Ñ=Ðð Ÿ™Ð'8×'=Ñ'=¸rÀ2¸hÓ'GÓHˆä7Ø/Ø'Ø)×7Ñ7ô
ð 	
r&   )rQ   r[   rÝ   rO   rd   )r9   r:   r;   r<   r   r   r   r5   r>   r?   r@   rA   s   @@r$   rÚ   rÚ   ú   s0   ù‡ € õð Ø÷
ñ 
ó ó ÷
ð 
r&   rÚ   zˆ
    ConvNext Model with an image classification head on top (a linear layer on top of the pooled features), e.g. for
    ImageNet.
    )Úcustom_introc                   ó`   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       tRt	Vt
V ;t# )ÚConvNextForImageClassificationi  Fc                óN  <€ \         SV `  V4       VP                  V n        \        V4      V n        VP                  ^ 8”  d9   \
        P                  ! VP                  R,          VP                  4      V n        M\
        P                  ! 4       V n        V P                  4        R# )rE   NrÜ   )r   r   Ú
num_labelsrÚ   r«   r   rƒ   rL   Ú
classifierrŒ   rÊ   rP   s   &&€r$   r   Ú'ConvNextForImageClassification.__init__(  su   ø€ Ü‰Ñ˜Ô à ×+Ñ+ˆŒÜ% fÓ-ˆŒð ×Ñ˜qÔ Ü Ÿiši¨×(;Ñ(;¸BÕ(?À×ARÑARÓSˆD�Oä Ÿkšk›mˆDŒOð 	�‰Ör&   c                óp   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[/# )r)   rT   NÚlabelsr+   )r-   rU   Ú
LongTensorr
   )r/   r0   s   "€r$   r1   Ú+ConvNextForImageClassification.__annotate__9  s<   ø€ ÷ 
ñ 
Ù!×-Ñ-°Õ4ð
ÙEJ×EUÑEUÐX\ÕE\ð
á	-ñ
r&   c                óØ   € V P                   ! V3/ VB pVP                  pV P                  V4      pRpVe   V P                  W&V P                  R7      p\        VVVP                  R7      # )ab  
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 regression loss is computed (Mean-Square loss), If
    `config.num_labels > 1` a classification loss is computed (Cross-Entropy).
N)ró   Úpooled_logitsrQ   )ÚlossÚlogitsrg   )r«   rä   rð   Úloss_functionrQ   r
   rg   )r    rT   ró   r"   Úoutputsré   rù   rø   s   &&&,    r$   r5   Ú&ConvNextForImageClassification.forward7  su   € ð =A¿MºMÈ,Ñ<aÐZ`Ñ<aˆØ×-Ñ-ˆØ—‘ Ó/ˆàˆØÒØ×%Ñ%¨VÐRV×R]ÑR]Ð%Ó^ˆDä3ØØØ!×/Ñ/ô
ð 	
r&   )rð   r«   rï   )NN)r9   r:   r;   r<   Úaccepts_loss_kwargsr   r   r   r5   r>   r?   r@   rA   s   @@r$   rí   rí     s8   ù‡ € ð  Ðõð Ø÷
ñ 
ó ó ÷
ð 
r&   rí   zQ
    ConvNeXt backbone, to be used with frameworks like DETR and MaskFormer.
    c                   óf   a a€ ] tR tRt oRtV 3R lt]]]V3R lR l4       4       4       t	Rt
VtV ;t# )ÚConvNextBackboneiQ  Fc                ó„  <€ \         SV `  V4       \        V4      V n        \	        V4      V n        VP                  ^ ,          .VP                  ,           V n        / p\        V P                  V P                  4       F  w  r4\        VRR7      W#&   K  	  \        P                  ! V4      V n        V P                  4        R# )rE   r   r7   N)r   r   rC   r[   r¾   rÝ   rL   Únum_featuresÚzipÚout_featuresÚchannelsr   r   Ú
ModuleDictÚhidden_states_normsrÊ   )r    rQ   r  rÏ   rK   r#   s   &&   €r$   r   ÚConvNextBackbone.__init__Y  sŸ   ø€ Ü‰Ñ˜Ô ä,¨VÓ4ˆŒÜ& vÓ.ˆŒØ#×0Ñ0°Õ3Ð4°v×7JÑ7JÕJˆÔð !ÐÜ#& t×'8Ñ'8¸$¿-¹-Ö#HÑˆEÜ):¸<ÐUeÔ)fÐÓ&ñ $Iä#%§=¢=Ð1DÓ#EˆÔ ð 	�‰Ör&   c                óP   <€ V ^8„  d   QhRS[ P                  RS[S[,          RS[/# )r)   rT   r"   r+   )r-   r.   r   r   r   )r/   r0   s   "€r$   r1   ÚConvNextBackbone.__annotate__l  s8   ø€ ÷ #]ñ #]á—l‘lð#]ñ Ñ+Õ,ð#]ñ 
ñ	#]r&   c                óH  € V P                  V4      pV P                  ! V3/ VB pVP                  p. p\        V P                  V4       FA  w  rxWpP
                  9   g   K  V P                  V,          ! V4      pVP                  V4       KC  	  \        \        V4      VR7      # )aA  
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("facebook/convnext-tiny-224")
>>> model = AutoBackbone.from_pretrained("facebook/convnext-tiny-224")

>>> inputs = processor(image, return_tensors="pt")
>>> outputs = model(**inputs)
```)Úfeature_mapsrg   )
r[   rÝ   rg   r  Ústage_namesr  r  rÉ   r   Útuple)	r    rT   r"   rç   rè   rg   r  rÏ   Úhidden_states	   &&,      r$   r5   ÚConvNextBackbone.forwardi  s–   € ð8  Ÿ?™?¨<Ó8ÐØ:>¿,º,ÐGWÑ:bÐ[aÑ:bˆØ'×5Ñ5ˆàˆÜ#& t×'7Ñ'7¸Ö#GÑˆEØ×)Ñ)Ö)Ø#×7Ñ7¸Ö>¸|ÓL�Ø×#Ñ# LÖ1ñ $Hô
 ¬5°Ó+>ÈmÔ\Ð\r&   )r[   rÝ   r  r  )r9   r:   r;   r<   Úhas_attentionsr   r   r   r   r5   r>   r?   r@   rA   s   @@r$   rÿ   rÿ   Q  s=   ù‡ € ð €Nõð  Ø Ø÷#]ó ó !ó ÷#]ð #]r&   rÿ   )rí   rÚ   rª   rÿ   )/r=   r-   r   Ú r   r¯   Úactivationsr   Úbackbone_utilsr   r   Úmodeling_outputsr   r   r	   r
   Úmodeling_utilsr   Úprocessing_utilsr   Úutilsr   r   r   Úutils.genericr   r   Úutils.output_capturingr   Úconfiguration_convnextr   Ú
get_loggerr9   ÚloggerrÞ   r   ÚModulerC   r^   r{   r—   rª   r¾   rÚ   rí   rÿ   Ú__all__rµ   r&   r$   Ú<module>r     sD  ðñ ã Ý å &Ý !ß H÷ó õ .Ý &ß @Ñ @ß IÝ 5Ý 2ð 
×	Ò	˜HÓ	%€ô˜Ÿ™ô ô4˜Ÿ™ô ô2%�r—y‘yô %ô0(�B—I‘Iô (ôV!�B—I‘Iô !ðH ôa˜oó aó ðaô %OÐ-ô %OðP ô!
Ð+ó !
ó ð!
ñH ðôô)
Ð%<ó )
óð)
ñX ðôô
9]�}Ð&=ó 9]óð
9]òx m‚r&   