+
    œ°³j´C  ã                   óŽ  € 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]PD                  4      t& ! R R]PD                  4      t' ! R R]PD                  4      t( ! R R]PD                  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 ConvNextV2 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©ÚConvNextV2Configc                   óT   a a€ ] tR t^'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	# )ÚConvNextV2GRNz)GRN (Global Response Normalization) layerc                ó    <€ V ^8„  d   QhRS[ /# )é   Údim)Úint)ÚformatÚ__classdict__s   "€Ús/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/convnextv2/modeling_convnextv2.pyÚ__annotate__ÚConvNextV2GRN.__annotate__*   s   ø€ ÷ <ñ <™Cñ <ó    c                óì   <€ \         SV `  4        \        P                  ! \        P
                  ! ^^^V4      4      V n        \        P                  ! \        P
                  ! ^^^V4      4      V n        R# )é   N)ÚsuperÚ__init__r   Ú	ParameterÚtorchÚzerosÚweightÚbias)Úselfr   Ú	__class__s   &&€r   r$   ÚConvNextV2GRN.__init__*   sL   ø€ Ü‰ÑÔÜ—l’l¤5§;¢;¨q°!°Q¸Ó#<Ó=ˆŒÜ—L’L¤§¢¨Q°°1°cÓ!:Ó;ˆŽ	r    c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# ©r   Úhidden_statesÚreturn)r&   ÚFloatTensor)r   r   s   "€r   r   r   /   s'   ø€ ÷ ñ ¡U×%6Ñ%6ð ¹5×;LÑ;Lñ r    c                óî   € \         P                  P                  V^RRR7      pW"P                  RRR7      R,           ,          pV P                  W,          ,          V P
                  ,           V,           pV# )r   T)Úordr   Úkeepdim)r   r4   ç�íµ ÷Æ°>)r"   r   éÿÿÿÿ)r&   ÚlinalgÚvector_normÚmeanr(   r)   )r*   r/   Úglobal_featuresÚnorm_featuress   &&  r   ÚforwardÚConvNextV2GRN.forward/   se   € äŸ,™,×2Ñ2°=ÀaÈVÐ]aÐ2ÓbˆØ'×+?Ñ+?ÀBÐPTÐ+?Ó+UÐX\Õ+\Õ]ˆØŸ™ }Õ'DÕEÈÏ	É	ÕQÐTaÕaˆàÐr    )r)   r(   ©
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r$   r<   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r+   r   s   @@r   r   r   '   s!   ù‡ € Ù3÷<ó <÷
÷ ð r    r   c                   óZ   a a€ ] tR t^9t 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	# )
ÚConvNextV2LayerNorma5  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).
Úepsr5   Údata_formatÚchannels_lastc               ód   <€ \         SV `  ! V3R V/VB  VR9  d   \        RV 24      hW0n        R# )rJ   zUnsupported data format: N)rL   Úchannels_first)r#   r$   ÚNotImplementedErrorrK   )r*   Únormalized_shaperJ   rK   Úkwargsr+   s   &&$$,€r   r$   ÚConvNextV2LayerNorm.__init__?   s=   ø€ Ü‰ÒÐ)Ñ=¨sÐ=°fÒ=ØÐAÔAÜ%Ð(AÀ+ÀÐ&OÓPÐPØ&Ör    c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# ©r   Úfeaturesr0   ©r&   ÚTensor)r   r   s   "€r   r   Ú ConvNextV2LayerNorm.__annotate__E   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)
rN   )rK   Úpermuter#   r<   )r*   rU   r+   s   &&€r   r<   ÚConvNextV2LayerNorm.forwardE   sj   ø€ ð
 ×ÑÐ/Ô/Ø×'Ñ'¨¨1¨a°Ó3ˆHÜ‘w‘ xÓ0ˆHØ×'Ñ'¨¨1¨a°Ó3ˆHð ˆô ‘w‘ xÓ0ˆHØˆr    ©rK   r>   rG   s   @@r   rI   rI   9   s,   ù‡ € ñð
'°ð 'À/÷ '÷÷ ó r    rI   c                   óH   a a€ ] tR t^Tt oRtV 3R ltV3R lR ltRtVtV ;t	# )ÚConvNextV2Embeddingsz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Ústrider5   rN   ©rJ   rK   N)
r#   r$   r   ÚConv2dÚnum_channelsÚhidden_sizesÚ
patch_sizeÚpatch_embeddingsrI   Ú	layernorm©r*   Úconfigr+   s   &&€r   r$   ÚConvNextV2Embeddings.__init__Y   sr   ø€ Ü‰ÑÔÜ "§	¢	Ø×Ñ ×!4Ñ!4°QÕ!7ÀV×EVÑEVÐ_e×_pÑ_pô!
ˆÔô -¨V×-@Ñ-@ÀÕ-CÈÐ[kÔlˆŒØ"×/Ñ/ˆÖr    c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   Úpixel_valuesr0   )r&   r1   rW   )r   r   s   "€r   r   Ú!ConvNextV2Embeddings.__annotate__a   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# )r"   zeMake sure that the channel dimension of the pixel values match with the one set in the configuration.)Úshaperf   Ú
ValueErrorri   rj   )r*   ro   rf   Ú
embeddingss   &&  r   r<   ÚConvNextV2Embeddings.forwarda   sT   € Ø#×)Ñ)¨!Õ,ˆØ×,Ñ,Ô,ÜØwóð ð ×*Ñ*¨<Ó8ˆ
Ø—^‘^ JÓ/ˆ
ØÐr    )rj   rf   ri   r>   rG   s   @@r   r^   r^   T   s   ù‡ € ñõ0÷÷ ð r    r^   c                   ój   a a€ ] tR t^mt 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
# )
ÚConvNextV2DropPathzÃ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_probr0   N)Úfloat)r   r   s   "€r   r   ÚConvNextV2DropPath.__annotate__t   s   ø€ ÷ #ñ #¡%ð #°$ñ #r    c                ó0   <€ \         SV `  4        Wn        R # ©N)r#   r$   ry   )r*   ry   r+   s   &&€r   r$   ÚConvNextV2DropPath.__init__t   s   ø€ Ü‰ÑÔØ"Žr    c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# r.   rV   )r   r   s   "€r   r   r{   x   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)r"   )
ry   Útrainingrr   Úndimr&   Úrandr‚   rƒ   ÚfloorÚdiv)r*   r/   Ú	keep_probrr   Úrandom_tensors   &&   r   r<   ÚConvNextV2DropPath.forwardx   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   r0   )Ústr)r   r   s   "€r   r   r{   �   s   ø€ ÷ %ñ %™Cñ %r    c                ó    € R V P                    2# )zp=©ry   )r*   s   &r   Ú
extra_reprÚConvNextV2DropPath.extra_repr�   s   € Ø�D—N‘NÐ#Ð$Ð$r    r�   )r�   )r?   r@   rA   rB   rC   r$   r<   r�   rD   rE   rF   rG   s   @@r   rw   rw   m   s-   ù‡ € ñ÷#õ #÷<ð <÷%÷ %ð %r    rw   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	# )ÚConvNextV2Layera  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 ([`ConvNextV2Config`]): Model configuration class.
    dim (`int`): Number of input channels.
    drop_path (`float`): Stochastic depth rate. Default: 0.0.
c                óÞ  <€ \         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        \        ^V,          4      V n        \        P                  ! ^V,          V4      V n        VR8”  d   \        V4      V n        R# \        P                   ! 4       V n        R# )é   )rb   ÚpaddingÚgroupsr5   ©rJ   r�   N)r#   r$   r   re   ÚdwconvrI   rj   ÚLinearÚpwconv1r   Ú
hidden_actÚactr   ÚgrnÚpwconv2rw   ÚIdentityÚ	drop_path)r*   rl   r   r¡   r+   s   &&&&€r   r$   ÚConvNextV2Layer.__init__“   sŸ   ø€ Ü‰ÑÔä—i’i °aÀÈ3ÔOˆŒÜ,¨S°dÔ;ˆŒä—y’y  a¨#¥gÓ.ˆŒÜ˜&×+Ñ+Õ,ˆŒÜ   S¥Ó)ˆŒÜ—y’y  S¥¨#Ó.ˆŒØ:CÀc¼/Ô+¨IÓ6ˆŽÌrÏ{Ê{Ë}ˆŽr    c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# rT   rV   )r   r   s   "€r   r   ÚConvNextV2Layer.__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                  V4      pVP                  ^ ^^^4      pW P                  V4      ,           pV# ©r`   )r™   rZ   rj   r›   r�   rž   rŸ   r¡   )r*   rU   Úresiduals   && r   r<   ÚConvNextV2Layer.forwardŸ   s�   € ØˆØ—;‘;˜xÓ(ˆà×#Ñ# A q¨!¨QÓ/ˆØ—>‘> (Ó+ˆØ—<‘< Ó)ˆØ—8‘8˜HÓ%ˆØ—8‘8˜HÓ%ˆØ—<‘< Ó)ˆà×#Ñ# A q¨!¨QÓ/ˆàŸn™n¨XÓ6Õ6ˆØˆr    )r�   r¡   r™   rž   rj   r›   rŸ   r¦   r>   rG   s   @@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	# )ÚConvNextV2Stagea�  ConvNeXTV2 stage, consisting of an optional downsampling layer + multiple residual blocks.

Args:
    config ([`ConvNextV2Config`]): 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 )r"   r5   rN   rd   ra   r�   )r   r¡   N)
r#   r$   r   Ú
ModuleListrI   re   Údownsampling_layerÚranger“   Úlayers)
r*   rl   Úin_channelsÚout_channelsrb   rc   ÚdepthÚdrop_path_ratesÚjr+   s
   &&&&&&&& €r   r$   ÚConvNextV2Stage.__init__¼   s¦   ø€ Ü‰ÑÔàÔ&¨&°1¬*Ü&(§m¢mä'¨¸ÐK[Ô\Ü—I’I˜kÀ[Ô`ðó'ˆDÕ#ô ')§m¢m£oˆDÔ#Ø)×:Ð:¨c¨U°U­]ˆÜ—m’mÜ^cÐdiÔ^jÓkÑ^jÐYZŒ_˜VÀÕAS×TÑ^jÑkó
ˆŽùÚks   Â(Cc                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# rT   rV   )r   r   s   "€r   r   ÚConvNextV2Stage.__annotate__Í   s#   ø€ ÷ ñ ¡§¡ð ±·±ñ r    c                ór   € V P                    F  pV! V4      pK  	  V P                   F  pV! V4      pK  	  V# r}   ©r­   r¯   )r*   rU   Úlayers   && r   r<   ÚConvNextV2Stage.forwardÍ   s7   € Ø×,Ô,ˆEÙ˜X“ŠHñ -à—[”[ˆEÙ˜X“ŠHñ !àˆr    r¹   )r   r   r   Nr>   rG   s   @@r   rª   rª   ±   s   ù‡ € ñ÷
÷"÷ ð r    rª   c                   óx   a a€ ] tR t^Õt oRtRtRtR.t]P                  ! 4       V 3R l4       t
V3R ltRtVtV ;t# )ÚConvNextV2PreTrainedModelÚ
convnextv2ro   r“   c                óÖ   <€ \         SV `  V4       \        V\        4      '       dC   \        P
                  ! VP                  4       \        P
                  ! VP                  4       R# R# )zInitialize the weightsN)r#   Ú_init_weightsÚ
isinstancer   ÚinitÚzeros_r(   r)   )r*   Úmoduler+   s   &&€r   rÀ   Ú'ConvNextV2PreTrainedModel._init_weightsÝ   sD   ø€ ô 	‰Ñ˜fÔ%Ü�fœm×,Ò,Ü�KŠK˜Ÿ™Ô&Ü�KŠK˜Ÿ™Ö$ñ -r    c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # )r   rl   r   )r   r   s   "€r   r   Ú&ConvNextV2PreTrainedModel.__annotate__Õ   s   ø‡ ‚ áÑò r    © )Úimage)r?   r@   rA   rB   Úbase_model_prefixÚmain_input_nameÚinput_modalitiesÚ_no_split_modulesr&   Úno_gradrÀ   Ú__annotate_func__rD   rE   rF   rG   s   @@r   r½   r½   Õ   s@   ù‡ € ð %ÐØ$€OØ!ÐØ*Ð+Ðà
‡]‚]ƒ_ô%ó ð%÷ … 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# )ÚConvNextV2Encoderr/   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 )r`   Úcpu)rƒ   )r°   r±   rc   r²   r³   N)r#   r$   r   r¬   Ústagesr&   ÚlinspaceÚdrop_path_rateÚsumÚdepthsÚsplitÚtolistrg   r®   Ú
num_stagesrª   ÚappendÚ	post_init)	r*   rl   Úxr³   Úprev_chsÚiÚout_chsÚstager+   s	   &&      €r   r$   ÚConvNextV2Encoder.__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   r/   rQ   r0   )r&   rW   r   r   r   )r   r   s   "€r   r   ÚConvNextV2Encoder.__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*   r/   rQ   Úlayer_modules   &&, r   r<   ÚConvNextV2Encoder.forward  s)   € ð !ŸKœKˆLÙ(¨Ó7ŠMñ (ô .ÀÔNÐNr    )rÔ   )r?   r@   rA   rB   rË   rª   Ú_can_record_outputsr$   r   r   r<   rD   rE   rF   rG   s   @@r   rÑ   rÑ   ç   sC   ù‡ € Ø%€OØ*¨OÐ<Ðõð.  Ù¨EÔ2÷Oó 3ó  ÷Oð Or    rÑ   c                   ó\   a a€ ] tR tRt oV 3R lt]]RV3R lR ll4       4       tRtVt	V ;t
# )ÚConvNextV2Modeli  c                ó  <€ \         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# )r"   r˜   Nr6   )r#   r$   rl   r^   rt   rÑ   Úencoderr   Ú	LayerNormrg   Úlayer_norm_epsrj   rÝ   rk   s   &&€r   r$   ÚConvNextV2Model.__init__  s^   ø€ Ü‰Ñ˜Ô ØŒä.¨vÓ6ˆŒÜ(¨Ó0ˆŒô Ÿš f×&9Ñ&9¸"Õ&=À6×CXÑCXÔYˆŒð 	�‰Ör    c                ó^   <€ V ^8„  d   QhRS[ P                  R,          RS[S[,          RS[/# )r   ro   NrQ   r0   )r&   r1   r   r   r	   )r   r   s   "€r   r   ÚConvNextV2Model.__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_outputr/   éþÿÿÿr6   )rs   rt   rï   rè   rj   r9   r	   r/   )r*   ro   rQ   Úembedding_outputÚencoder_outputsrè   Úpooled_outputs   &&,    r   r<   ÚConvNextV2Model.forward  s‚   € ð
 ÒÜÐ?Ó@Ð@àŸ?™?¨<Ó8ÐØ:>¿,º,ÐGWÑ:bÐ[aÑ:bˆØ+×=Ñ=Ðð Ÿ™Ð'8×'=Ñ'=¸rÀ2¸hÓ'GÓHˆä7Ø/Ø'Ø)×7Ñ7ô
ð 	
r    )rl   rt   rï   rj   r}   )r?   r@   rA   rB   r$   r   r   r<   rD   rE   rF   rG   s   @@r   rí   rí     s0   ù‡ € õð Ø÷
ñ 
ó ó ÷
ð 
r    rí   zŠ
    ConvNextV2 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# )Ú ConvNextV2ForImageClassificationi5  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# )r`   Nr6   )r#   r$   Ú
num_labelsrí   r¾   r   rš   rg   Ú
classifierr    rÝ   rk   s   &&€r   r$   Ú)ConvNextV2ForImageClassification.__init__?  su   ø€ Ü‰Ñ˜Ô à ×+Ñ+ˆŒÜ)¨&Ó1ˆŒð ×Ñ˜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   ro   NÚlabelsr0   )r&   r1   Ú
LongTensorr
   )r   r   s   "€r   r   Ú-ConvNextV2ForImageClassification.__annotate__P  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_logitsrl   )ÚlossÚlogitsr/   )r¾   rö   r  Úloss_functionrl   r
   r/   )r*   ro   r  rQ   Úoutputsrú   r
  r	  s   &&&,    r   r<   Ú(ConvNextV2ForImageClassification.forwardN  su   € ð =A¿OºOÈLÑ<cÐ\bÑ<cˆØ×-Ñ-ˆØ—‘ Ó/ˆàˆØÒØ×%Ñ%¨VÐRV×R]ÑR]Ð%Ó^ˆDä3ØØØ!×/Ñ/ô
ð 	
r    )r  r¾   r   )NN)r?   r@   rA   rB   Úaccepts_loss_kwargsr$   r   r   r<   rD   rE   rF   rG   s   @@r   rþ   rþ   5  s8   ù‡ € ð  Ðõð Ø÷
ñ 
ó ó ÷
ð 
r    rþ   zT
    ConvNeXT V2 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# )ÚConvNextV2Backboneih  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# )r`   rN   r\   N)r#   r$   r^   rt   rÑ   rï   rg   Únum_featuresÚzipÚout_featuresÚchannelsrI   r   Ú
ModuleDictÚhidden_states_normsrÝ   )r*   rl   r  râ   rf   r+   s   &&   €r   r$   ÚConvNextV2Backbone.__init__q  sŸ   ø€ Ü‰Ñ˜Ô ä.¨vÓ6ˆŒÜ(¨Ó0ˆŒØ#×0Ñ0°Õ3Ð4°v×7JÑ7JÕJˆÔð !ÐÜ#& t×'8Ñ'8¸$¿-¹-Ö#HÑˆEÜ)<¸\ÐWgÔ)hÐÓ&ñ $Iä#%§=¢=Ð1DÓ#EˆÔ ð 	�‰Ör    c                óP   <€ V ^8„  d   QhRS[ P                  RS[S[,          RS[/# )r   ro   rQ   r0   )r&   rW   r   r   r   )r   r   s   "€r   r   ÚConvNextV2Backbone.__annotate__„  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      # )aK  
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/convnextv2-tiny-1k-224")
>>> model = AutoBackbone.from_pretrained("facebook/convnextv2-tiny-1k-224")

>>> inputs = processor(image, return_tensors="pt")
>>> outputs = model(**inputs)
```)Úfeature_mapsr/   )
rt   rï   r/   r  Ústage_namesr  r  rÜ   r   Útuple)	r*   ro   rQ   rø   rù   r/   r  râ   Úhidden_states	   &&,      r   r<   ÚConvNextV2Backbone.forward�  s–   € ð8  Ÿ?™?¨<Ó8ÐØ:>¿,º,ÐGWÑ:bÐ[aÑ:bˆØ'×5Ñ5ˆàˆÜ#& t×'7Ñ'7¸Ö#GÑˆEØ×)Ñ)Ö)Ø#×7Ñ7¸Ö>¸|ÓL�Ø×#Ñ# LÖ1ñ $Hô
 ¬5°Ó+>ÈmÔ\Ð\r    )rt   rï   r  r  )r?   r@   rA   rB   Úhas_attentionsr$   r   r   r   r<   rD   rE   rF   rG   s   @@r   r  r  h  s=   ù‡ € ð €Nõð  Ø Ø÷#]ó ó !ó ÷#]ð #]r    r  )rþ   rí   r½   r  )0rC   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_convnextv2r   Ú
get_loggerr?   ÚloggerÚModuler   rð   rI   r^   rw   r“   rª   r½   rÑ   rí   rþ   r  Ú__all__rÈ   r    r   Ú<module>r0     sQ  ðñ  ã Ý å &Ý !ß H÷ó õ .Ý &ß @Ñ @ß IÝ 5Ý 6ð 
×	Ò	˜HÓ	%€ô�B—I‘Iô ô$˜"Ÿ,™,ô ô6˜2Ÿ9™9ô ô2%˜Ÿ™ô %ô0(�b—i‘iô (ôX!�b—i‘iô !ðH ô% ó %ó ð%ô"%OÐ1ô %OðP ô!
Ð/ó !
ó ð!
ñH ðôô)
Ð'@ó )
óð)
ñX ðôô9]˜Ð(Aó 9]óð9]òx u‚r    