+
    œ°³j’v  ã                   ón  € ^ RI t ^ RIHt ^ RIHt ^ RIHt ^ RIt^ RIH	u H
t ^ RIH	t	 ^RIHt ^RIH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 ^RI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 R] 4      4       4       t,]! R4       ! R R]	PZ                  4      4       t. ! R R]	PZ                  4      t/RRRR]P`                  3R R llt1 ! R R]	PZ                  4      t2 ! R  R!]	PZ                  4      t3R9R" R# llt4 ! R$ R%]	PZ                  4      t5 ! R& R']4      t6 ! R( R)]	PZ                  4      t7 ! R* R+]	PZ                  4      t8]" ! R, R-]4      4       t9]"! R.R/7       ! R0 R1]94      4       t:]"! R2R/7       ! R3 R4]94      4       t;R5 R6 lt<]" ! R7 R8]94      4       t=. R:Ot>R# );é    N)ÚCallable)Ú	dataclass)ÚAny)Únn)Úinitialization)ÚACT2FN)Úuse_kernel_forward_from_hub)Úcreate_causal_mask)ÚGradientCheckpointingLayer)ÚBaseModelOutputÚBaseModelOutputWithPooling)ÚALL_ATTENTION_FUNCTIONSÚPreTrainedModel)ÚUnpack)ÚModelOutputÚTransformersKwargsÚauto_docstringÚcan_return_tuple)Úmerge_with_config_defaults)Úcapture_outputs)ÚAimv2ConfigÚAimv2TextConfigÚAimv2VisionConfigc                   ó^   a € ] tR t^-t o RtRtRtRtRtRt	Rt
RtV 3R lR ltV 3R ltRtV tR# )ÚAimv2Outputai  
loss (`torch.FloatTensor` of shape `(1,)`, *optional*, returned when `return_loss` is `True`):
    Contrastive loss for image-text similarity.
logits_per_image (`torch.FloatTensor` of shape `(image_batch_size, text_batch_size)`):
    The scaled dot product scores between `image_embeds` and `text_embeds`. This represents the image-text
    similarity scores.
logits_per_text (`torch.FloatTensor` of shape `(text_batch_size, image_batch_size)`):
    The scaled dot product scores between `text_embeds` and `image_embeds`. This represents the text-image
    similarity scores.
text_embeds (`torch.FloatTensor` of shape `(batch_size, output_dim`):
    The text embeddings obtained by applying the projection layer to the pooled output of [`Aimv2TextModel`].
image_embeds (`torch.FloatTensor` of shape `(batch_size, output_dim`):
    The image embeddings obtained by applying the projection layer to the pooled output of [`Aimv2VisionModel`].
text_model_output (`BaseModelOutputWithPooling`):
    The output of the [`Aimv2TextModel`].
vision_model_output (`BaseModelOutputWithPooling`):
    The output of the [`Aimv2VisionModel`].
Nc                ó0   <€ V ^8„  d   QhRS[ S[,          /# ©é   Úreturn)Útupler   )ÚformatÚ__classdict__s   "€Úi/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/aimv2/modeling_aimv2.pyÚ__annotate__ÚAimv2Output.__annotate__K   s   ø€ ÷ _ñ _™%¡�*ñ _ó    c                ó’   € \         ;QJ d"    . R  V P                  4        4       F  NK  	  5# ! R  V P                  4        4       4      # )c              3   ór   "  € T F-  p\        V\        4      '       d   VP                  4       MTx € K/  	  R # 5i©N)Ú
isinstancer   Úto_tuple)Ú.0Úvs   & r#   Ú	<genexpr>Ú'Aimv2Output.to_tuple.<locals>.<genexpr>L   s)   é € Ð^ÑP]È1¤Z°´;×%?Ò%?�Q—Z‘Z”\ÀQÔFÓP]ùs   ‚57)r    Úvalues©Úselfs   &r#   r+   ÚAimv2Output.to_tupleK   s8   € ßŒuÑ^ÐPT×P[ÑP[ÔP]Ó^�uÐ^ˆuÑ^ÐPT×P[ÑP[ÔP]Ó^Ó^Ð^r&   c                ó  <€ V ^8„  d   Qh/ S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[;R&   S[;R&   # )	r   NÚlossÚlogits_per_imageÚlogits_per_textÚtext_embedsÚimage_embedsÚtext_model_outputÚvision_model_output)ÚtorchÚFloatTensorr   )r!   r"   s   "€r#   r$   r%   -   s—   ø‡ ‚ ñ, ×
Ñ
˜dÕ
"Ñ)ñ- ñ. ×'Ñ'¨$Õ.Ñ5ñ/ ñ0 ×&Ñ&¨Õ-Ñ4ñ1 ñ2 ×"Ñ" TÕ)Ñ0ñ3 ñ4 ×#Ñ# dÕ*Ñ1ñ5 ñ6 2Ñ8ñ7 ñ8 4Ñ:ò9 r&   © )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r5   r6   r7   r8   r9   r:   r;   r+   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r"   s   @r#   r   r   -   sE   ø‡ € ñð& &*€DØ15ÐØ04€OØ,0€KØ-1€LØ48ÐØ6:Ð÷_ð _÷= ƒ r&   r   ÚRMSNormc                   óZ   a a€ ] tR t^Ot oRV3R lV 3R llltV3R lR ltR tRtVtV ;t	# )ÚAimv2RMSNormc                ó$   <€ V ^8„  d   QhRS[ RR/# )r   Úepsr   N)Úfloat)r!   r"   s   "€r#   r$   ÚAimv2RMSNorm.__annotate__Q   s   ø€ ÷ $ñ $©ð $¸$ñ $r&   c                óŽ   <€ \         SV `  4        \        P                  ! \        P
                  ! V4      4      V n        W n        R# )z+
Aimv2RMSNorm is equivalent to T5LayerNorm
N)ÚsuperÚ__init__r   Ú	Parameterr<   ÚonesÚweightÚvariance_epsilon)r2   Úhidden_sizerK   Ú	__class__s   &&&€r#   rP   ÚAimv2RMSNorm.__init__Q   s/   ø€ ô 	‰ÑÔÜ—l’l¤5§:¢:¨kÓ#:Ó;ˆŒØ #Ör&   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# ©r   Úhidden_statesr   ©r<   ÚTensor)r!   r"   s   "€r#   r$   rM   Y   s#   ø€ ÷ ;ñ ;¡U§\¡\ð ;±e·l±lñ ;r&   c                ó:  € VP                   pVP                  \        P                  4      pVP	                  ^4      P                  RRR7      pV\        P                  ! W0P                  ,           4      ,          pV P                  VP                  V4      ,          # )r   T)Úkeepdiméÿÿÿÿ)	ÚdtypeÚtor<   Úfloat32ÚpowÚmeanÚrsqrtrT   rS   )r2   rZ   Úinput_dtypeÚvariances   &&  r#   ÚforwardÚAimv2RMSNorm.forwardY   sw   € Ø#×)Ñ)ˆØ%×(Ñ(¬¯©Ó7ˆØ ×$Ñ$ QÓ'×,Ñ,¨R¸Ð,Ó>ˆØ%¬¯ª°H×?TÑ?TÕ4TÓ(UÕUˆØ�{‰{˜]×-Ñ-¨kÓ:Õ:Ð:r&   c                ó^   € \        V P                  P                  4       R V P                   2# )z, eps=)r    rS   ÚshaperT   r1   s   &r#   Ú
extra_reprÚAimv2RMSNorm.extra_repr`   s*   € Ü˜Ÿ™×)Ñ)Ó*Ð+¨6°$×2GÑ2GÐ1HÐIÐIr&   )rT   rS   )g�íµ ÷Æ°>)
r?   r@   rA   rB   rP   rh   rl   rE   rF   Ú__classcell__©rV   r"   s   @@r#   rI   rI   O   s%   ù‡ € ÷$õ $÷;ð ;÷Jò Jr&   rI   c                   ó8   a a€ ] tR t^dt oV 3R ltR tRtVtV ;t# )ÚAimv2MLPc                ó  <€ \         SV `  4        Wn        VP                  V n        VP                  V n        \
        P                  ! V P                  V P                  VP                  R 7      V n        \
        P                  ! V P                  V P                  VP                  R 7      V n	        \
        P                  ! V P                  V P                  VP                  R 7      V n
        \        VP                  ,          V n        R# )©ÚbiasN)rO   rP   ÚconfigrU   Úintermediate_sizer   ÚLinearÚmlp_biasÚ	gate_projÚup_projÚ	down_projr   Ú
hidden_actÚact_fn©r2   ru   rV   s   &&€r#   rP   ÚAimv2MLP.__init__e   s¶   ø€ Ü‰ÑÔØŒØ!×-Ñ-ˆÔØ!'×!9Ñ!9ˆÔÜŸš 4×#3Ñ#3°T×5KÑ5KÐRX×RaÑRaÔbˆŒÜ—y’y ×!1Ñ!1°4×3IÑ3IÐPV×P_ÑP_Ô`ˆŒÜŸš 4×#9Ñ#9¸4×;KÑ;KÐRX×RaÑRaÔbˆŒÜ˜V×.Ñ.Õ/ˆŽr&   c                ó�   € V P                  V P                  V P                  V4      4      V P                  V4      ,          4      pV# r)   )r{   r}   ry   rz   )r2   Úxr{   s   && r#   rh   ÚAimv2MLP.forwardo   s6   € Ø—N‘N 4§;¡;¨t¯~©~¸aÓ/@Ó#AÀDÇLÁLÐQRÃOÕ#SÓTˆ	ØÐr&   )r}   ru   r{   ry   rU   rv   rz   ©	r?   r@   rA   rB   rP   rh   rE   rF   rn   ro   s   @@r#   rq   rq   d   s   ù‡ € õ0÷ò r&   rq   é   g     ˆÃ@Fc                óÂ   € V ^8„  d   QhR\         R\         R\         R\        R\        R\        P                  R,          R\        P
                  R	\        P                  /# )
r   ÚheightÚwidthÚ	embed_dimÚtemperatureÚ	cls_tokenÚdeviceNr`   r   )ÚintrL   Úboolr<   r‹   r`   r\   )r!   s   "r#   r$   r$   t   si   € ÷ /ñ /Üð/äð/ô ð/ô ð	/ô
 ð/ô �L‰L˜4Õð/ô �;‰;ð/ô ‡\�\ñ/r&   c           	     ó^  € V^,          ^ 8w  d   \        RV 24      hV^,          pVe   VP                  R8w  d   \        P                  M\        P                  p\        P
                  ! WxVR7      V,          p	RW9,          ,          p	\        P
                  ! WVR7      p
\        P
                  ! WVR7      p\        P                  ! W«RR7      w  r«V
P                  4       P                  V	4      pVP                  4       P                  V	4      p\        P                  ! VP                  4       VP                  4       VP                  4       VP                  4       .^R7      pV'       d2   \        P                  ! \        P                  ! ^W(VR7      V.^ R7      pVP                  V4      # )a‡  2D sinusoidal position embeddings for an image patch grid.

Each (h, w) position gets an ``embed_dim``-dimensional vector laid out as
``[sin_h | cos_h | sin_w | cos_w]``, with row-major (H-outer) patch ordering.

Args:
    height: Grid height in patches.
    width: Grid width in patches.
    embed_dim: Total embedding dimension; must be divisible by 4.
    temperature: Base for the frequency decay.
    cls_token: If `True`, prepend a zero row for a CLS token.
    device: Target device; defaults to CPU.
    dtype: Output dtype; frequency arithmetic uses float64 internally.

Returns:
    Tensor of shape ``(height * width [+1], embed_dim)``.
z(`embed_dim` must be divisible by 4, got Úmps©r`   r‹   g      ð?Úij)Úindexing©Údim)Ú
ValueErrorÚtyper<   Úfloat64rb   ÚarangeÚmeshgridÚflattenÚouterÚcatÚsinÚcosÚzerosra   )r†   r‡   rˆ   r‰   rŠ   r‹   r`   Úpos_dimÚcompute_dtypeÚomegaÚgrid_hÚgrid_wÚemb_hÚemb_wÚ	pos_embeds   &&&&&&&        r#   Ú&build_2d_sinusoidal_position_embeddingr¨   t   s8  € ð4 �1…}˜ÔÜÐCÀIÀ;ÐOÓPÐPà˜1�n€Gà%+¢^°v·{±{ÀeÔ7K”E—M’MÔQV×Q^ÑQ^€MÜ�LŠL˜¸fÔEÈÕO€EØ�+Õ$Õ$€Eä�\Š\˜&¸fÔE€FÜ�\Š\˜%¸VÔD€FÜ—^’^ F¸TÔB�N€Fà�N‰NÓ×"Ñ" 5Ó)€EØ�N‰NÓ×"Ñ" 5Ó)€Eä—	’	˜5Ÿ9™9›;¨¯	©	«°U·Y±Y³[À%Ç)Á)Ã+ÐNÐTUÔV€IçÜ—I’IœuŸ{š{¨1¨iÐU[Ô\Ð^gÐhÐnoÔpˆ	à�<‰<˜ÓÐr&   c                   óP   a a€ ] tR t^¦t oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚAimv2VisionEmbeddingsc                ó    <€ V ^8„  d   QhRS[ /# ©r   ru   ©r   )r!   r"   s   "€r#   r$   Ú"Aimv2VisionEmbeddings.__annotate__§   s   ø€ ÷ cñ cÑ0ñ cr&   c                ót  <€ \         SV `  4        Wn        VP                  V n        \        P
                  ! VP                  VP                  VP                  VP                  R 7      V n        \        VP                  VP                  4      V n        VP                  VP                  ,          ^,          pV P                  P                  '       g&   \        P                  ! W!P                  4      V n        \        P                   ! \"        P$                  ! V4      P'                  R4      RR7      V n        R# ))Úkernel_sizeÚstrideF©Ú
persistentN©é   r_   )rO   rP   ru   Ú
patch_sizer   ÚConv2dÚnum_channelsrU   Úpatch_embedrI   Úrms_norm_epsÚrms_normÚ
image_sizeÚ	is_nativeÚ	EmbeddingÚposition_embeddingÚBufferr<   r˜   ÚexpandÚposition_ids)r2   ru   Únum_patchesrV   s   && €r#   rP   ÚAimv2VisionEmbeddings.__init__§   sÙ   ø€ Ü‰ÑÔØŒØ ×+Ñ+ˆŒÜŸ9š9Ø×Ñ ×!3Ñ!3À×ARÑARÐ[a×[lÑ[lô
ˆÔô % V×%7Ñ%7¸×9LÑ9LÓMˆŒà×(Ñ(¨F×,=Ñ,=Õ=À!ÕCˆØ�{‰{×$×$Ð$Ü&(§l¢l°;×@RÑ@RÓ&SˆDÔ#ÜŸIšI¤e§l¢l°;Ó&?×&FÑ&FÀwÓ&OÐ\aÔbˆÖr&   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   Úpixel_valuesr   r[   )r!   r"   s   "€r#   r$   r®   µ   s#   ø€ ÷ ñ ¡E§L¡Lð ±U·\±\ñ r&   c                ó–  € VP                  4       w   r#pV P                  V4      P                  ^4      P                  ^^4      pV P	                  V4      pV P
                  P                  '       dµ   \        W0P                  ,          W@P                  ,          V P
                  P                  VP                  VP                  R7      pVP                  R,          ^,          p\        P                  ! VRVR13,          VRRV13,          .RR7      pVP                  ^ 4      pMV P!                  V P"                  4      pWV,           pV# )r   )r†   r‡   rˆ   r‹   r`   .Nr“   r_   )Úsizer¹   rš   Ú	transposer»   ru   r½   r¨   r¶   rU   r‹   r`   rk   r<   rœ   Ú	unsqueezer¿   rÂ   )r2   rÆ   Ú_r†   r‡   rZ   r§   Úhalfs   &&      r#   rh   ÚAimv2VisionEmbeddings.forwardµ   s  € Ø*×/Ñ/Ó1Ñˆˆ1�eØ×(Ñ(¨Ó6×>Ñ>¸qÓA×KÑKÈAÈqÓQˆØŸ™ mÓ4ˆà�;‰;× × Ð Ü>Ø§¡Õ0ØŸ™Õ.ØŸ+™+×1Ñ1Ø$×+Ñ+Ø#×)Ñ)ôˆIð —?‘? 2Õ&¨!Õ+ˆDÜŸ	š	 9¨S°$±%¨ZÕ#8¸)ÀCÈÈ$ÈÀJÕ:OÐ"PÐVXÔYˆIØ!×+Ñ+¨AÓ.‰Ià×/Ñ/°×0AÑ0AÓBˆIà%Õ1ˆØÐr&   )ru   r¹   r¶   r¿   rÂ   r»   rƒ   ro   s   @@r#   rª   rª   ¦   s    ù‡ € ÷có c÷÷ ð 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# )ÚAimv2TextEmbeddingsc                ó    <€ V ^8„  d   QhRS[ /# r¬   ©r   )r!   r"   s   "€r#   r$   Ú Aimv2TextEmbeddings.__annotate__Ï   s   ø€ ÷ vñ v™ñ vr&   c                óh  <€ \         SV `  4        VP                  p\        P                  ! VP
                  V4      V n        \        P                  ! VP                  V4      V n        \        P                  ! \        P                  ! VP                  4      P                  R4      RR7      V n        R# )rµ   Fr²   Nr´   )rO   rP   rU   r   r¾   Ú
vocab_sizeÚtoken_embeddingÚmax_position_embeddingsr¿   rÀ   r<   r˜   rÁ   rÂ   )r2   ru   rˆ   rV   s   && €r#   rP   ÚAimv2TextEmbeddings.__init__Ï   s|   ø€ Ü‰ÑÔØ×&Ñ&ˆ	ä!Ÿ|š|¨F×,=Ñ,=¸yÓIˆÔÜ"$§,¢,¨v×/MÑ/MÈyÓ"YˆÔô ŸIšI¤e§l¢l°6×3QÑ3QÓ&R×&YÑ&YÐZaÓ&bÐotÔuˆÖr&   c                ó¬   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  /# )r   Ú	input_idsNrÂ   Úinputs_embedsr   )r<   Ú
LongTensorr=   r\   )r!   r"   s   "€r#   r$   rÒ   Ù   sX   ø€ ÷ ñ á×#Ñ# dÕ*ðñ ×&Ñ&¨Õ-ðñ ×(Ñ(¨4Õ/ð	ñ
 
�‰ñr&   c                óh  € Ve   VP                   R,          MVP                   R,          pV P                  P                  P                   ^ ,          pWE8”  d   \        RV RV 24      hVf   V P                  RR V13,          pVf   V P                  V4      pV P                  V4      pW6,           pV# )NzRSequence length must be less than max_position_embeddings (got `sequence length`: z and max_position_embeddings: :NNNr_   éþÿÿÿ)rk   r¿   rS   r•   rÂ   rÕ   )r2   rÙ   rÂ   rÚ   Ú
seq_lengthÚmax_position_embeddingÚposition_embeddingsÚ
embeddingss   &&&&    r#   rh   ÚAimv2TextEmbeddings.forwardÙ   sÁ   € ð -6Ò,A�Y—_‘_ RÖ(À}×GZÑGZÐ[]ÕG^ˆ
Ø!%×!8Ñ!8×!?Ñ!?×!EÑ!EÀaÕ!HÐàÔ.ÜØdØ�,Ð<Ð=SÐ<TðVóð ð
 ÒØ×,Ñ,¨Q°°°¨^Õ<ˆLàÒ Ø ×0Ñ0°Ó;ˆMà"×5Ñ5°lÓCÐØ"Õ8ˆ
àÐr&   )r¿   rÂ   rÕ   ©NNNrƒ   ro   s   @@r#   rÏ   rÏ   Î   s    ù‡ € ÷vó v÷÷ ò r&   rÏ   c                óÞ   € V ^8„  d   QhR\         P                  R\        P                  R\        P                  R\        P                  R\        P                  R,          R\        R\        /# )	r   ÚmoduleÚqueryÚkeyÚvalueÚattention_maskNÚscalingÚdropout)r   ÚModuler<   r\   rL   )r!   s   "r#   r$   r$   ô   sg   € ÷ %ñ %Ü�I‰Ið%ä�<‰<ð%ô 
�‰ð%ô �<‰<ð	%ô
 —L‘L 4Õ'ð%ô ð%ô ñ%r&   c                 óÎ  € \         P                  ! WP                  RR4      4      V,          pVe	   W„,           p\        P                  P                  VR\         P                  R7      P                  VP                  4      p\        P                  P                  W†V P                  R7      p\         P                  ! Wƒ4      p	V	P                  ^^4      P                  4       p	W˜3# )rµ   )r”   r`   )ÚpÚtrainingr_   rÝ   )r<   ÚmatmulrÉ   r   Ú
functionalÚsoftmaxrb   ra   r`   rë   rï   Ú
contiguous)
rå   ræ   rç   rè   ré   rê   rë   ÚkwargsÚattn_weightsÚattn_outputs
   &&&&&&&,  r#   Úeager_attention_forwardr÷   ô   s°   € ô —<’< §}¡}°R¸Ó'<Ó=ÀÕG€LØÒ!Ø#Õ4ˆä—=‘=×(Ñ(¨¸2ÄUÇ]Á]Ð(ÓS×VÑVÐW\×WbÑWbÓc€LÜ—=‘=×(Ñ(¨È6Ï?É?Ð(Ó[€Lä—,’,˜|Ó3€KØ×'Ñ'¨¨1Ó-×8Ñ8Ó:€KàÐ$Ð$r&   c                   óL   a a€ ] tR tRt oRtV 3R ltRV3R lR lltRtVtV ;t	# )ÚAimv2Attentioni  z=Multi-headed attention from 'Attention Is All You Need' paperc                óœ  <€ \         SV `  4        Wn        VP                  V n        VP
                  V n        V P                  V P                  ,          V n        V P                  V P                  ,          V P                  8w  d'   \        R V P                   RV P                   R24      hV P                  R,          V n	        VP                  V n        RV n        \        P                  ! V P                  V P                  VP                  R7      V n        \        P                  ! V P                  V P                  VP                  R7      V n        \        P                  ! V P                  V P                  VP                  R7      V n        \        P                  ! V P                  V P                  VP                  R7      V n        R# )z;embed_dim must be divisible by num_heads (got `embed_dim`: z and `num_heads`: z).Frs   Ng      à¿)rO   rP   ru   rU   rˆ   Únum_attention_headsÚ	num_headsÚhead_dimr•   ÚscaleÚattention_dropoutrë   Ú	is_causalr   rw   Úqkv_biasÚk_projÚv_projÚq_projÚout_projr~   s   &&€r#   rP   ÚAimv2Attention.__init__  s0  ø€ Ü‰ÑÔØŒØ×+Ñ+ˆŒØ×3Ñ3ˆŒØŸ™¨$¯.©.Õ8ˆŒØ�=‰=˜4Ÿ>™>Õ)¨T¯^©^Ô;ÜØMÈdÏnÉnÐM]ð ^Ø—N‘NÐ# 2ð'óð ð —]‘] DÕ(ˆŒ
Ø×/Ñ/ˆŒØˆŒÜ—i’i §¡°·±ÀVÇ_Á_ÔUˆŒÜ—i’i §¡°·±ÀVÇ_Á_ÔUˆŒÜ—i’i §¡°·±ÀVÇ_Á_ÔUˆŒÜŸ	š	 $§.¡.°$·.±.ÀvÇÁÔWˆŽr&   c          	      ó®   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[S[ P                  S[ P                  R,          3,          /# )r   rZ   ré   Nr   )r<   r\   r    )r!   r"   s   "€r#   r$   ÚAimv2Attention.__annotate__!  sM   ø€ ÷ !)ñ !)á—|‘|ð!)ñ Ÿ™ tÕ+ð!)ñ
 
‰u�|‰|™UŸ\™\¨DÕ0Ð0Õ	1ñ!)r&   c                óº  € VP                   RR p. VORNV P                  N5pV P                  V4      P                  V4      P	                  ^^4      pV P                  V4      P                  V4      P	                  ^^4      pV P                  V4      P                  V4      P	                  ^^4      p\        P                  ! V P                  P                  \        4      p	T	! T TTTTV P                  V P                  V P                  '       g   RMV P                  R7      w  r«V
P                   ! . VORN5!  P#                  4       p
V P%                  V
4      p
W«3# )z#Input shape: Batch x Time x ChannelNç        )r   rê   rë   r_   )rk   rý   r  ÚviewrÉ   r  r  r   Úget_interfaceru   Ú_attn_implementationr÷   r   rþ   rï   rë   Úreshaperó   r  )r2   rZ   ré   rô   Úinput_shapeÚhidden_shapeÚqueriesÚkeysr0   Úattention_interfacerö   rõ   s   &&&,        r#   rh   ÚAimv2Attention.forward!  s8  € ð $×)Ñ)¨#¨2Ð.ˆà8˜Ð8 bÐ8¨$¯-©-Ñ8ˆØ—+‘+˜mÓ,×1Ñ1°,Ó?×IÑIÈ!ÈQÓOˆØ�{‰{˜=Ó)×.Ñ.¨|Ó<×FÑFÀqÈ!ÓLˆØ—‘˜]Ó+×0Ñ0°Ó>×HÑHÈÈAÓNˆä(?×(MÒ(MØ�K‰K×,Ñ,Ô.Eó)
Ðñ %8ØØØØØØ—n‘nØ—J‘JØ#Ÿ}Ÿ}˜}‘C°$·,±,ô	%
Ñ!ˆð "×)Ò)Ð;¨;Ð;¸Ó;×FÑFÓHˆØ—m‘m KÓ0ˆàÐ(Ð(r&   )ru   rë   rˆ   rý   r   r  rü   r  r  rþ   r  r)   )
r?   r@   rA   rB   rC   rP   rh   rE   rF   rn   ro   s   @@r#   rù   rù     s   ù‡ € ÙGõX÷&!)÷ !)ò !)r&   rù   c                   óT   a a€ ] tR tRt oV3R lV 3R lltRV3R lR lltRtVtV ;t# )ÚAimv2EncoderLayeriE  c                ó    <€ V ^8„  d   QhRS[ /# r¬   r­   )r!   r"   s   "€r#   r$   ÚAimv2EncoderLayer.__annotate__F  s   ø€ ÷ Oñ OÑ0ñ Or&   c                óø   <€ \         SV `  4        \        V4      V n        \	        V4      V n        \        VP                  VP                  4      V n	        \        VP                  VP                  4      V n
        R # r)   )rO   rP   rù   Ú	attentionrq   ÚffnrI   rU   rº   Ú	rms_norm1Ú	rms_norm2r~   s   &&€r#   rP   ÚAimv2EncoderLayer.__init__F  sZ   ø€ Ü‰ÑÔÜ'¨Ó/ˆŒÜ˜FÓ#ˆŒÜ% f×&8Ñ&8¸&×:MÑ:MÓNˆŒÜ% f×&8Ñ&8¸&×:MÑ:MÓNˆŽr&   c                óŒ   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[S[,          RS[ P                  /# )r   rZ   ré   Nrô   r   )r<   r\   r   r   )r!   r"   s   "€r#   r$   r  M  sJ   ø€ ÷ ñ á—|‘|ðñ Ÿ™ tÕ+ðñ Ñ+Õ,ð	ñ
 
�‰ñr&   c                ó¼   € V P                  V4      pV P                  ! RR VRV/VB w  rVW,           pV P                  V4      pV P                  V4      pW,           pV# )rZ   ré   r>   )r  r  r  r  )r2   rZ   ré   rô   Únorm_hidden_statesrö   rË   Ú
mlp_outputs   &&&,    r#   rh   ÚAimv2EncoderLayer.forwardM  sg   € ð "Ÿ^™^¨MÓ:ÐØŸšÑrÐ6HÐrÐYgÐrÐkqÑr‰ˆà%Õ3ˆØ!Ÿ^™^¨MÓ:ÐØ—X‘XÐ0Ó1ˆ
à%Õ2ˆØÐr&   )r  r  r  r  r)   rƒ   ro   s   @@r#   r  r  E  s    ù‡ € ÷Oó O÷÷ ò r&   r  c                   ób   a a€ ] tR tRt oRtV3R lV 3R llt]RV3R lR ll4       tRtVt	V ;t
# )	ÚAimv2Encoderi^  z›
Transformer encoder consisting of `config.num_hidden_layers` self attention layers. Each layer is a
[`Aimv2EncoderLayer`].

Args:
    config: Aimv2Config
c                ó    <€ V ^8„  d   QhRS[ /# r¬   ©r   )r!   r"   s   "€r#   r$   ÚAimv2Encoder.__annotate__g  s   ø€ ÷ ,ñ ,™{ñ ,r&   c                óÖ   <€ \         SV `  4        Wn        \        P                  ! \        VP                  4       Uu. uF  p\        V4      NK  	  up4      V n        R V n	        R# u upi )FN)
rO   rP   ru   r   Ú
ModuleListÚrangeÚnum_hidden_layersr  ÚlayersÚgradient_checkpointing)r2   ru   rË   rV   s   && €r#   rP   ÚAimv2Encoder.__init__g  sS   ø€ Ü‰ÑÔØŒÜ—m’mÌÈf×NfÑNfÔHgÓ$hÑHgÀ1Ô%6°vÖ%>ÑHgÑ$hÓiˆŒØ&+ˆÖ#ùò %is   ½A&c                ó^   <€ V ^8„  d   QhRS[ P                  R,          RS[S[,          RS[/# ©r   ré   Nrô   r   )r<   r\   r   r   r   )r!   r"   s   "€r#   r$   r(  o  s?   ø€ ÷ @ñ @ñ Ÿ™ tÕ+ð@ñ Ñ+Õ,ð	@ñ
 
ñ@r&   c                óX   € TpV P                    F  pV! VV3/ VB pK  	  \        VR 7      # ))Úlast_hidden_state)r-  r   )r2   rÚ   ré   rô   rZ   Úencoder_layers   &&&,  r#   rh   ÚAimv2Encoder.forwardn  s>   € ð &ˆØ!Ÿ[œ[ˆMÙ)ØØñð ñŠMñ )ô °Ô?Ð?r&   )ru   r.  r-  r)   )r?   r@   rA   rB   rC   rP   r   rh   rE   rF   rn   ro   s   @@r#   r%  r%  ^  s6   ù‡ € ñ÷,ó ,ð ÷@ñ @ó ÷@ð @r&   r%  c                   óP   a a€ ] tR tRt oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚAimv2AttentionPoolingHeadi€  c                ó    <€ V ^8„  d   QhRS[ /# r¬   r­   )r!   r"   s   "€r#   r$   Ú&Aimv2AttentionPoolingHead.__annotate__�  s   ø€ ÷ 	Tñ 	TÑ0ñ 	Tr&   c                ó2  <€ \         SV `  4        VP                  V n        VP                  V n        \
        P                  ! V P                  V P                  VP                  R 7      V n        \
        P                  ! V P                  V P                  VP                  R 7      V n	        \
        P                  ! \        P                  ! ^^V P                  4      4      V n        \
        P                  ! V P                  V P                  RR 7      V n        R# )rs   TN)rO   rP   rU   rû   rü   r   rw   r  r  r  rQ   r<   rŸ   rŠ   Úoutput_projr~   s   &&€r#   rP   Ú"Aimv2AttentionPoolingHead.__init__�  sµ   ø€ Ü‰ÑÔØ!×-Ñ-ˆÔØ×3Ñ3ˆŒä—i’i × 0Ñ 0°$×2BÑ2BÈÏÉÔYˆŒÜ—i’i × 0Ñ 0°$×2BÑ2BÈÏÉÔYˆŒäŸš¤e§k¢k°!°Q¸×8HÑ8HÓ&IÓJˆŒÜŸ9š9 T×%5Ñ%5°t×7GÑ7GÈdÔSˆÖr&   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# rY   r[   )r!   r"   s   "€r#   r$   r9  Œ  s#   ø€ ÷ ñ ¡U§\¡\ð ±e·l±lñ r&   c                óÜ  € VP                   w  r#pV P                  P                  VRR4      pV P                  V4      P	                  W#V P
                  W@P
                  ,          4      pV P                  V4      P	                  W#V P
                  W@P
                  ,          4      pVP	                  V^V P
                  W@P
                  ,          4      pVP                  ^ ^^^4      pVP                  ^ ^^^4      pVP                  ^ ^^^4      p\        P                  ! W†V4      p	V	P                  ^^4      P	                  V^V4      p	V	P                  ^R7      p	V P                  V	4      p
V
# )rµ   r“   r_   )rk   rŠ   rÁ   r  r  rü   r  ÚpermuteÚFÚscaled_dot_product_attentionrÉ   rd   r;  )r2   rZ   Ú
batch_sizeÚseq_lenÚ
hidden_dimrŠ   rç   rè   ræ   rö   Úoutputs   &&         r#   rh   Ú!Aimv2AttentionPoolingHead.forwardŒ  s8  € Ø*7×*=Ñ*=Ñ'ˆ
˜Zà—N‘N×)Ñ)¨*°b¸"Ó=ˆ	à�k‰k˜-Ó(×0Ñ0°ÀdÇnÁnÐV`×drÑdrÕVrÓsˆØ—‘˜MÓ*×2Ñ2°:ÈÏÉÐXb×ftÑftÕXtÓuˆØ×!Ñ! *¨a°·±ÀÏ~É~ÕA]Ó^ˆà�k‰k˜!˜Q  1Ó%ˆØ—‘˜a  A qÓ)ˆØ—‘˜a  A qÓ)ˆä×4Ò4°UÀÓGˆà!×+Ñ+¨A¨qÓ1×9Ñ9¸*ÀaÈÓTˆØ!×&Ñ&¨1Ð&Ó-ˆà×!Ñ! +Ó.ˆØˆr&   )rŠ   rU   r  rü   r;  r  rƒ   ro   s   @@r#   r7  r7  €  s    ù‡ € ÷	Tó 	T÷÷ ð r&   r7  c                   óŠ   a a€ ] tR tRt oRtRtRtRt. R	O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# )
ÚAimv2PreTrainedModeli¢  zÃ
An abstract class to handle weights initialization and a simple interface for downloading and loading pretrained
models. The model is only intended for inference and doesn't support finetuning.
Úaimv2Tc                óŠ  <€ \         SV `  V4       \        VR 4      '       dd   \        VP                  \
        P                  4      '       d8   \        P                  ! VP                  \        P                  ! R4      4       R# R# \        V\        4      '       d:   \        P                  ! VP                  RV P                  P                  R7       R# \        V\         4      '       db   \        P"                  ! VP$                  \&        P(                  ! VP$                  P*                  R,          4      P-                  R4      4       R# \        V\.        4      '       db   \        P"                  ! VP$                  \&        P(                  ! VP$                  P*                  R,          4      P-                  R4      4       R# R# )Úlogit_scaler
  )rd   ÚstdNg$I’$I’,@r_   r´   )rO   Ú_init_weightsÚhasattrr*   rK  r   rQ   ÚinitÚ	constant_ÚmathÚlogr7  Únormal_rŠ   ru   Úinitializer_rangerª   Úcopy_rÂ   r<   r˜   rk   rÁ   rÏ   )r2   rå   rV   s   &&€r#   rM  Ú"Aimv2PreTrainedModel._init_weights·  s  ø€ ä‰Ñ˜fÔ%Ü�6˜=×)Ò)Ü˜&×,Ñ,¬b¯l©l×;Ò;Ü—’˜v×1Ñ1´4·8²8¸HÓ3EÖFñ <ä˜Ô 9×:Ò:Ü�LŠL˜×)Ñ)°¸¿¹×9VÑ9V×WÜ˜Ô 5×6Ò6Ü�JŠJ�v×*Ñ*¬E¯LªL¸×9LÑ9L×9RÑ9RÐSUÕ9VÓ,W×,^Ñ,^Ð_fÓ,gÖhÜ˜Ô 3×4Ò4Ü�JŠJ�v×*Ñ*¬E¯LªL¸×9LÑ9L×9RÑ9RÐSUÕ9VÓ,W×,^Ñ,^Ð_fÓ,gÖhñ 5r&   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r¬   r'  )r!   r"   s   "€r#   r$   Ú!Aimv2PreTrainedModel.__annotate__¢  s   ø‡ ‚ ñ Ñò r&   r>   )Úimage)r  r7  rª   rÏ   )r?   r@   rA   rB   rC   Úbase_model_prefixÚinput_modalitiesÚsupports_gradient_checkpointingÚ_no_split_modulesÚ_supports_sdpaÚ_supports_flash_attnÚ_supports_flex_attnr<   Úno_gradrM  rD   rE   rF   rn   ro   s   @@r#   rH  rH  ¢  sZ   ù‡ € ñð  ÐØ!ÐØ&*Ð#òÐð €NØÐØÐà
‡]‚]ƒ_ô
ió ð
i÷- … r&   rH  zL
    The Vision model from AIMv2 without any head or projection on top.
    )Úcustom_introc                   óª   a a€ ] tR tRt oRtR]R]/tV3R lV 3R lltV3R lR lt	]
]! R	R
7      ]V3R lR l4       4       4       tV3R ltRtVtV ;t# )ÚAimv2VisionModeliÅ  rÆ   rZ   Ú
attentionsc                ó    <€ V ^8„  d   QhRS[ /# r¬   r­   )r!   r"   s   "€r#   r$   ÚAimv2VisionModel.__annotate__Ò  s   ø€ ÷ ñ Ñ0ñ r&   c                óB  <€ \         SV `  V4       Wn        \        V4      V n        \        V4      V n        \        VP                  VP                  4      V n
        VP                  V n        V P                  '       d   \        V4      V n        V P                  4        R # r)   )rO   rP   ru   rª   rá   r%  ÚencoderrI   rU   rº   r»   Úuse_headr7  ÚheadÚ	post_initr~   s   &&€r#   rP   ÚAimv2VisionModel.__init__Ò  sq   ø€ Ü‰Ñ˜Ô ØŒÜ/°Ó7ˆŒÜ# FÓ+ˆŒä$ V×%7Ñ%7¸×9LÑ9LÓMˆŒàŸ™ˆŒØ�=�=ˆ=Ü1°&Ó9ˆDŒIà�‰Ör&   c                ó4   <€ V ^8„  d   QhRS[ P                  /# r   ©r   rì   )r!   r"   s   "€r#   r$   rg  à  s   ø€ ÷ +ñ +¡b§i¡iñ +r&   c                ó.   € V P                   P                  # r)   )rá   r¹   r1   s   &r#   Úget_input_embeddingsÚ%Aimv2VisionModel.get_input_embeddingsà  s   € Ø�‰×*Ñ*Ð*r&   F©Útie_last_hidden_statesc                ó6   <€ V ^8„  d   QhRS[ S[,          RS[/# )r   rô   r   )r   r   r   )r!   r"   s   "€r#   r$   rg  æ  s'   ø€ ÷ *
ñ *
ñ Ñ+Õ,ð*
ñ 
$ñ	*
r&   c                óê   € V P                  V4      pV P                  ! RRV/VB pVP                  pV P                  V4      pV P                  '       d   V P                  V4      MRp\        VVR7      # )a³  
Examples:

```python
>>> from PIL import Image
>>> import httpx
>>> from io import BytesIO
>>> from transformers import AutoProcessor, Siglip2VisionModel

>>> model = Aimv2VisionModel.from_pretrained("apple/aimv2-large-patch14-native")
>>> processor = AutoProcessor.from_pretrained("apple/aimv2-large-patch14-native")

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

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

>>> outputs = model(**inputs)
>>> last_hidden_state = outputs.last_hidden_state
>>> pooled_output = outputs.pooler_output  # pooled features
```rÚ   N©r3  Úpooler_outputr>   )rá   ri  r3  r»   rj  rk  r   )r2   rÆ   rô   rZ   Úencoder_outputsr3  rx  s   &&,    r#   rh   ÚAimv2VisionModel.forwardã  sz   € ð< Ÿ™¨Ó5ˆà+/¯<ª<ñ ,
Ø'ð,
àñ,
ˆð
 ,×=Ñ=ÐØ ŸM™MÐ*;Ó<Ðà8<¿¿¸˜Ÿ	™	Ð"3Ô4È4ˆä)Ø/Ø'ô
ð 	
r&   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r¬   r­   )r!   r"   s   "€r#   r$   rg  Å  s   ø‡ ‚ ñ Ñò r&   )ru   rá   ri  rk  r»   rj  )r?   r@   rA   rB   Úmain_input_namer  rù   Ú_can_record_outputsrP   rq  r   r   r   rh   rD   rE   rF   rn   ro   s   @@r#   rd  rd  Å  sd   ù‡ € ð %€OàÐ*Ø�nðÐ÷
ó ÷+ð +ð  Ù¨EÔ2Ø÷*
ó ó 3ó  ð*
÷C … r&   rd  zJ
    The text model from AIMv2 without any head or projection on top.
    c                   ó¨   a a€ ] tR tRt oRtR]R]/tV3R lV 3R lltV3R lR lt	R	 t
]]! R
R7      ]RV3R lR ll4       4       4       tRtVtV ;t# )ÚAimv2TextModeli  rÙ   rZ   re  c                ó    <€ V ^8„  d   QhRS[ /# r¬   rÑ   )r!   r"   s   "€r#   r$   ÚAimv2TextModel.__annotate__   s   ø€ ÷ 	ñ 	™ñ 	r&   c                óþ   <€ \         SV `  V4       Wn        \        V4      V n        \        V4      V n        \        VP                  VP                  4      V n
        VP                  V n        V P                  4        R # r)   )rO   rP   ru   rÏ   rá   r%  ri  rI   rU   rº   r»   Úeos_token_idrl  r~   s   &&€r#   rP   ÚAimv2TextModel.__init__   s_   ø€ Ü‰Ñ˜Ô ØŒÜ-¨fÓ5ˆŒÜ# FÓ+ˆŒÜ$ V×%7Ñ%7¸×9LÑ9LÓMˆŒà"×/Ñ/ˆÔà�‰Ör&   c                ó4   <€ V ^8„  d   QhRS[ P                  /# r   ro  )r!   r"   s   "€r#   r$   r�  +  s   ø€ ÷ /ñ /¡b§i¡iñ /r&   c                ó.   € V P                   P                  # r)   ©rá   rÕ   r1   s   &r#   rq  Ú#Aimv2TextModel.get_input_embeddings+  s   € Ø�‰×.Ñ.Ð.r&   c                ó&   € WP                   n        R # r)   r‡  )r2   rè   s   &&r#   Úset_input_embeddingsÚ#Aimv2TextModel.set_input_embeddings.  s   € Ø*/�‰Ö'r&   Frs  c                ó^   <€ V ^8„  d   QhRS[ P                  R,          RS[S[,          RS[/# r1  )r<   r\   r   r   r   )r!   r"   s   "€r#   r$   r�  4  s:   ø€ ÷ &
ñ &
ñ Ÿ™ tÕ+ð&
ñ Ñ+Õ,ð	&
ñ
 
$ñ&
r&   c                óÂ  € V P                  V4      pVP                  w  rVp\        P                  ! V\        P                  VP
                  R 7      pVP                  ^ 4      P                  VR4      pVe   \        V P                  VVVRR7      pV P                  ! R	RVRV/VB p	V	P                  p
V P                  V
4      p
V
\        P                  ! V
P                  ^ ,          V
P
                  R7      VP                  \        P                  V
P
                  R 7      V P                  8H  P                  4       P!                  RR7      3,          p\#        V
VR7      # )
r�   N)ru   rÚ   rÂ   ré   Úpast_key_valuesrÚ   ré   )r‹   r“   rw  r_   r>   )rá   rk   r<   r˜   Úlongr‹   rÊ   rÁ   r
   ru   ri  r3  r»   ra   rŒ   rƒ  Úargmaxr   )r2   rÙ   ré   rô   rZ   rB  rC  rË   rÂ   ry  r3  Úpooled_outputs   &&&,        r#   rh   ÚAimv2TextModel.forward1  sL  € ð Ÿ™¨	Ó2ˆØ!.×!4Ñ!4Ñˆ
˜Qä—|’| G´5·:±:Àm×FZÑFZÔ[ˆØ#×-Ñ-¨aÓ0×7Ñ7¸
ÀBÓGˆØÒ%Ü/Ø—{‘{Ø+Ø)Ø-Ø $ôˆNð Ÿ,š,ñ 
Ø'ð
à)ð
ð ñ
ˆð ,×=Ñ=ÐØ ŸM™MÐ*;Ó<Ðð *Ü�LŠLÐ*×0Ñ0°Õ3Ð<M×<TÑ<TÔUØ�\‰\¤§	¡	Ð2C×2JÑ2Jˆ\ÓKÈt×O`ÑO`Ñ`×eÑeÓg×nÑnÐsuÐnÓvðxõ
ˆô
 *Ø/Ø'ô
ð 	
r&   )ru   rá   ri  rƒ  r»   r)   )r?   r@   rA   rB   r|  r  rù   r}  rP   rq  rŠ  r   r   r   rh   rE   rF   rn   ro   s   @@r#   r  r    sm   ù‡ € ð "€Oð 	Ð*Ø�nðÐ÷
	ó 	÷/ð /ò0ð  Ù¨EÔ2Ø÷&
ñ &
ó ó 3ó  ÷&
ð &
r&   r  c                óX   € V ^8„  d   QhR\         P                  R\         P                  /# )r   Útensorr   r[   )r!   s   "r#   r$   r$   ]  s"   € ÷ ñ œUŸ\™\ð ¬e¯l©lñ r&   c                ó”   € \         P                  ! V ^4      p\         P                  ! VRRR7      p\         P                  ! VR4      pV# )z±
This method is equivalent to tensor.norm(p=2, dim=-1, keepdim=True) and used to make
model `executorch` exportable. See issue https://github.com/pytorch/executorch/issues/3566
T)r”   r^   g      à?r_   )r<   rc   Úsum)r”  Úsquare_tensorÚ
sum_tensorÚnormed_tensors   &   r#   Ú_get_vector_normrš  ]  s<   € ô
 —I’I˜f aÓ(€MÜ—’˜=¨b¸$Ô?€JÜ—I’I˜j¨#Ó.€MØÐr&   c                   óÀ   a a€ ] tR tRt oRtV3R lV 3R llt]]RV3R lR ll4       4       t]]RV3R lR ll4       4       t	]]RV3R	 lR
 ll4       4       t
RtVtV ;t# )Ú
Aimv2Modelih  Tc                ó    <€ V ^8„  d   QhRS[ /# r¬   r'  )r!   r"   s   "€r#   r$   ÚAimv2Model.__annotate__l  s   ø€ ÷ ñ ™{ñ r&   c                óü  <€ \         SV `  V4       VP                  V n        VP                  P                  V n        VP                  P                  V n        \        P                  VP                  4      V n
        \        P                  VP                  4      V n        \        P                  ! V P
                  V P                  R R7      V n        \        P                  ! V P                  V P                  R R7      V n        \        P"                  ! \$        P&                  ! V P(                  P*                  4      4      V n        \.        P0                  ! VP2                  4      V n        V P7                  4        R# )Frs   N)rO   rP   Úprojection_dimÚvision_configrU   Úvision_embed_dimÚtext_configÚtext_embed_dimrd  Ú_from_configÚvision_modelr  Ú
text_modelr   rw   Úvisual_projectionÚtext_projectionrQ   r<   r”  ru   Úlogit_scale_init_valuerK  rQ  rR  Úmax_logit_scaleÚmax_log_logit_scalerl  r~   s   &&€r#   rP   ÚAimv2Model.__init__l  s   ø€ Ü‰Ñ˜Ô à$×3Ñ3ˆÔØ &× 4Ñ 4× @Ñ @ˆÔØ$×0Ñ0×<Ñ<ˆÔä,×9Ñ9¸&×:NÑ:NÓOˆÔÜ(×5Ñ5°f×6HÑ6HÓIˆŒä!#§¢¨4×+@Ñ+@À$×BUÑBUÐ\aÔ!bˆÔÜ!Ÿyšy¨×)<Ñ)<¸d×>QÑ>QÐX]Ô^ˆÔäŸ<š<¬¯ª°T·[±[×5WÑ5WÓ(XÓYˆÔÜ#'§8¢8¨F×,BÑ,BÓ#CˆÔ à�‰Ör&   c                ó°   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  R,          RS[S[,          RS[S[,          /# )r   rÙ   ré   NrÂ   rô   r   )r<   r\   r   r   r    r   )r!   r"   s   "€r#   r$   rž  €  s_   ø€ ÷  ñ  á—<‘<ð ñ Ÿ™ tÕ+ð ñ —l‘l TÕ)ð	 ñ
 Ñ+Õ,ð ñ 
Ñ+Õ	+ñ r&   c                ó~   € V P                   ! RRVRVRVRR/VB pVP                  pV P                  V4      Vn        V# )aº  
Examples:

```python
>>> import torch
>>> from transformers import AutoTokenizer, Aimv2Model

>>> model = Aimv2Model.from_pretrained("openai/aimv2-vit-base-patch32")
>>> tokenizer = AutoTokenizer.from_pretrained("openai/aimv2-vit-base-patch32")

>>> inputs = tokenizer(["a photo of a cat", "a photo of a dog"], padding=True, return_tensors="pt")

>>> with torch.inference_mode():
...     text_features = model.get_text_features(**inputs)
```rÙ   ré   rÂ   Úreturn_dictTr>   )r§  rx  r©  )r2   rÙ   ré   rÂ   rô   Útext_outputsr‘  s   &&&&,  r#   Úget_text_featuresÚAimv2Model.get_text_features~  sf   € ð0 48·?²?ñ 4
Øð4
à)ð4
ð &ð4
ð ð	4
ð
 ñ4
ˆð %×2Ñ2ˆØ%)×%9Ñ%9¸-Ó%HˆÔ"àÐr&   c          	      óf   <€ V ^8„  d   QhRS[ P                  RS[RS[S[,          RS[S[,          /# )r   rÆ   Úinterpolate_pos_encodingrô   r   )r<   r=   r�   r   r   r    r   )r!   r"   s   "€r#   r$   rž  ¤  sE   ø€ ÷ "ñ "á×'Ñ'ð"ñ #'ð"ñ Ñ+Õ,ð	"ñ
 
Ñ+Õ	+ñ"r&   c           	     óz   € V P                   ! RRVRVRR/VB pVP                  pV P                  V4      Vn        V# )a&  
Examples:

```python
>>> import torch
>>> from transformers import AutoProcessor, Aimv2Model
>>> from transformers.image_utils import load_image

>>> model = Aimv2Model.from_pretrained("openai/aimv2-vit-base-patch32")
>>> processor = AutoProcessor.from_pretrained("openai/aimv2-vit-base-patch32")

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> image = load_image(url)

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

>>> with torch.inference_mode():
...     image_features = model.get_image_features(**inputs)
```rÆ   rµ  r°  Tr>   )r¦  rx  r¨  )r2   rÆ   rµ  rô   Úvision_outputsr‘  s   &&&,  r#   Úget_image_featuresÚAimv2Model.get_image_features¢  s^   € ð6 6:×5FÒ5Fñ 6
Ø%ð6
à%=ð6
ð ð6
ð ñ	6
ˆð '×4Ñ4ˆØ'+×'=Ñ'=¸mÓ'LˆÔ$àÐr&   c          
      ó®   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[S[,          RS[/# )r   rÙ   NrÆ   ré   rô   r   )r<   rÛ   r=   r\   r   r   r   )r!   r"   s   "€r#   r$   rž  Ê  sb   ø€ ÷ ?
ñ ?
á×#Ñ# dÕ*ð?
ñ ×'Ñ'¨$Õ.ð?
ñ Ÿ™ tÕ+ð	?
ñ
 Ñ+Õ,ð?
ñ 
ñ?
r&   c           	     ó(  € V P                   ! RRV/VB pV P                  ! RRVRV/VB pVP                  pV P                  V4      pVP                  pV P	                  V4      pV\        V4      ,          pV\        V4      ,          pV P                  P                  RV P                  4      P                  4       P                  VP                  4      p	W˜,          VP                  4       ,          p
V
P                  4       p\        VV
VVVVR7      # )aD  
Examples:

```python
>>> from PIL import Image
>>> import httpx
>>> from io import BytesIO
>>> from transformers import AutoProcessor, Aimv2Model

>>> model = Aimv2Model.from_pretrained("apple/aimv2-large-patch14-224-lit")
>>> processor = AutoProcessor.from_pretrained("apple/aimv2-large-patch14-224-lit")

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

>>> inputs = processor(
...     text=["a photo of a cat", "a photo of a dog"], images=image, return_tensors="pt", padding=True
... )

>>> outputs = model(**inputs)
>>> logits_per_image = outputs.logits_per_image  # this is the image-text similarity score
>>> probs = logits_per_image.softmax(dim=1)  # we can take the softmax to get the label probabilities
```rÆ   rÙ   ré   r
  )r6   r7   r8   r9   r:   r;   r>   )r¦  r§  rx  r¨  r©  rš  rK  Úclampr¬  Úexpra   r‹   Útr   )r2   rÙ   rÆ   ré   rô   r·  r±  r9   r8   rK  r7   r6   s   &&&&,       r#   rh   ÚAimv2Model.forwardÈ  s$  € ðB 6:×5FÒ5Fñ 6
Ø%ð6
àñ6
ˆð
 48·?²?ñ 4
Øð4
à)ð4
ð ñ4
ˆð &×3Ñ3ˆØ×-Ñ-¨lÓ;ˆà"×0Ñ0ˆØ×*Ñ*¨;Ó7ˆð $Ô&6°|Ó&DÕDˆØ!Ô$4°[Ó$AÕAˆà×&Ñ&×,Ñ,¨S°$×2JÑ2JÓK×OÑOÓQ×TÑTÐU`×UgÑUgÓhˆØ&Õ4¸¿¹Ó8HÕHˆØ*×,Ñ,Ó.ÐäØ-Ø+Ø#Ø%Ø*Ø .ô
ð 	
r&   )	rK  r¬  r   r¤  r§  r©  r¢  r¦  r¨  )NN)Frã   )r?   r@   rA   rB   r_  rP   r   r   r²  r¸  rh   rE   rF   rn   ro   s   @@r#   rœ  rœ  h  s   ù‡ € àÐ÷ó ð$ Ø÷ ñ  ó ó ð ðD Ø÷"ñ "ó ó ð"ðH Ø÷?
ñ ?
ó ó ÷?
ð ?
r&   rœ  )r
  )rd  rœ  rH  r  )?rQ  Úcollections.abcr   Údataclassesr   Útypingr   r<   Útorch.nn.functionalr   rñ   r@  Ú r   rO  Úactivationsr   Úintegrationsr	   Úmasking_utilsr
   Úmodeling_layersr   Úmodeling_outputsr   r   Úmodeling_utilsr   r   Úprocessing_utilsr   Úutilsr   r   r   r   Úutils.genericr   Úutils.output_capturingr   Úconfiguration_aimv2r   r   r   r   rì   rI   rq   rb   r¨   rª   rÏ   r÷   rù   r  r%  r7  rH  rd  r  rš  rœ  Ú__all__r>   r&   r#   Ú<module>rÑ     sË  ðó, Ý $Ý !Ý ã ß Ð Ý å &Ý !Ý 7Ý /Ý 9ß Kß FÝ &ß VÓ VÝ 7Ý 5ß PÑ Pð Ø
ô_�+ó _ó ó ð_ñ@ ˜YÓ'ôJ�2—9‘9ó Jó (ðJô(ˆr�y‰yô ð& Ø ØØ"&ØŸ™÷/ôd%˜BŸI™Iô %ôP#˜"Ÿ)™)ô #÷L%ô.7)�R—Y‘Yô 7)ôtÐ2ô ô2@�2—9‘9ô @ôD §	¡	ô ðD ôi˜?ó ió ðiñD ðôô
F
Ð+ó F
óð
F
ñR ðôô
B
Ð)ó B
óð
B
õJð ô`
Ð%ó `
ó ð`
òF W‚r&   