+
    QV-j;>  ã                   óÚ  € R t ^ RIt^ RIHt ^ RIH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 ^R	IHt ^R
IHtHtHt ^RIHt ]P2                  ! ]4      t] ! R R]4      4       t ! R R]P:                  4      tRR R llt ! R R]P:                  4      t  ! R R]P:                  4      t! ! R R]4      t" ! R R]P:                  4      t# ! R R]P:                  4      t$R# )zTPyTorch IdeficsVision model: a copy of CLIPVisionModel using a simpler config objectN)ÚCallable)Ú	dataclass)Únn)ÚACT2FN)ÚGradientCheckpointingLayer)ÚBaseModelOutputÚBaseModelOutputWithPooling)ÚALL_ATTENTION_FUNCTIONS)ÚUnpack)ÚModelOutputÚTransformersKwargsÚlogging©ÚIdeficsVisionConfigc                   ó@   a € ] tR t^'t o RtRtRtRtRtV 3R lt	Rt
V tR# )ÚIdeficsVisionModelOutputa�  
Base class for vision model's outputs that also contains image embeddings of the pooling of the last hidden states.

Args:
    image_embeds (`torch.FloatTensor` of shape `(batch_size, output_dim)` *optional* returned when model is initialized with `with_projection=True`):
        The image embeddings obtained by applying the projection layer to the pooler_output.
    last_hidden_state (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`):
        Sequence of hidden-states at the output of the last layer of the model.
    hidden_states (`tuple(torch.FloatTensor)`, *optional*, returned when `output_hidden_states=True` is passed or when `config.output_hidden_states=True`):
        Tuple of `torch.FloatTensor` (one for the output of the embeddings, if the model has an embedding layer, +
        one for the output of each layer) of shape `(batch_size, sequence_length, hidden_size)`.

        Hidden-states of the model at the output of each layer plus the optional initial embedding outputs.
    attentions (`tuple(torch.FloatTensor)`, *optional*, returned when `output_attentions=True` is passed or when `config.output_attentions=True`):
        Tuple of `torch.FloatTensor` (one for each layer) of shape `(batch_size, num_heads, sequence_length,
        sequence_length)`.

        Attentions weights after the attention softmax, used to compute the weighted average in the self-attention
        heads.
Nc                óú   <€ V ^8„  d   Qh/ S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[S[ P                  R3,          R,          ;R&   S[S[ P                  R3,          R,          ;R&   # )é   NÚimage_embedsÚlast_hidden_state.Úhidden_statesÚ
attentions)ÚtorchÚFloatTensorÚtuple)ÚformatÚ__classdict__s   "€Ús/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/transformers/models/idefics/vision.pyÚ__annotate__Ú%IdeficsVisionModelOutput.__annotate__'   sy   ø‡ ‚ ñ. ×#Ñ# dÕ*Ñ1ñ/ ñ0 ×(Ñ(¨4Õ/Ñ6ñ1 ñ2 ™×*Ñ*¨CÐ/Õ0°4Õ7Ñ>ñ3 ñ4 ‘e×'Ñ'¨Ð,Õ-°Õ4Ñ;ò5 ó    © )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r   r   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r   s   @r   r   r   '   s(   ø‡ € ñð* .2€LØ26ÐØ:>€MØ7;€J÷5 ƒ r    r   c                   óf   a a€ ] tR t^Et oV3R lV 3R lltV3R lR ltRV3R lR lltRtVtV ;t	# )	ÚIdeficsVisionEmbeddingsc                ó    <€ V ^8„  d   QhRS[ /# ©r   Úconfigr   )r   r   s   "€r   r   Ú$IdeficsVisionEmbeddings.__annotate__F   s   ø€ ÷ qñ qÑ2ñ qr    c                óü  <€ \         SV `  4        Wn        VP                  V n        VP
                  V n        VP                  V n        \        P                  ! \        P                  ! V P                  4      4      V n        \        P                  ! VP                  V P                  V P                  V P                  R R7      V n        V P
                  V P                  ,          ^,          V n        V P                  ^,           V n        \        P"                  ! V P                   V P                  4      V n        V P'                  R\        P(                  ! V P                   4      P+                  R4      R R7       R# )F)Úin_channelsÚout_channelsÚkernel_sizeÚstrideÚbiasÚposition_ids)Ú
persistentN)é   éÿÿÿÿ)ÚsuperÚ__init__r.   Úhidden_sizeÚ	embed_dimÚ
image_sizeÚ
patch_sizer   Ú	Parameterr   ÚrandnÚclass_embeddingÚConv2dÚnum_channelsÚpatch_embeddingÚnum_patchesÚnum_positionsÚ	EmbeddingÚposition_embeddingÚregister_bufferÚarangeÚexpand©Úselfr.   Ú	__class__s   &&€r   r;   Ú IdeficsVisionEmbeddings.__init__F   s  ø€ Ü‰ÑÔØŒØ×+Ñ+ˆŒØ ×+Ñ+ˆŒØ ×+Ñ+ˆŒä!Ÿ|š|¬E¯KªK¸¿¹Ó,GÓHˆÔä!ŸyšyØ×+Ñ+ØŸ™ØŸ™Ø—?‘?Øô 
ˆÔð !ŸO™O¨t¯©Õ>À1ÕDˆÔØ!×-Ñ-°Õ1ˆÔÜ"$§,¢,¨t×/AÑ/AÀ4Ç>Á>Ó"RˆÔØ×Ñ˜^¬U¯\ª\¸$×:LÑ:LÓ-M×-TÑ-TÐU\Ó-]ÐjoÐÖpr    c                óZ   <€ V ^8„  d   QhRS[ P                  RS[RS[RS[ P                  /# )r   Ú
embeddingsÚheightÚwidthÚreturn)r   ÚTensorÚint)r   r   s   "€r   r   r/   ]   s;   ø€ ÷ /Qñ /Q±5·<±<ð /QÉð /QÑUXð /QÑ]b×]iÑ]iñ /Qr    c                óN  € VP                   ^,          ^,
          pV P                  V P                  4      pVP                   ^,          ^,
          pWF8X  d	   W#8X  d   V# VR
,          pVR,          pVP                   R,          p	W P                  P                  ,          p
W0P                  P                  ,          pV
R,           VR,           rº\
        P                  ! V4      pVP                  ^\        V4      \        V4      V	4      pVP                  ^ ^^^4      pVP                  \        P                  8H  pV'       d5   \        P                  R4       VP                  \        P                   4      p\"        P$                  P'                  VW¬,          W¼,          3RRR7      pV'       d    VP                  \        P                  4      p\        V
4      VP                   R,          8w  g"   \        V4      VP                   R,          8w  dK   \)        R\        V
4      \        V4      3 RVP                   R,          VP                   R,          3 R24      hVP                  ^ ^^^4      P+                  ^RV	4      p\        P,                  ! VP/                  ^ 4      V3^R	7      # )zû
This method allows to interpolate the pre-trained position encodings, to be able to use the model on higher
resolution images.

Source:
https://github.com/facebookresearch/dino/blob/de9ee3df6cf39fac952ab558447af1fa1365362a/vision_transformer.py#L174
gš™™™™™¹?zËUpcasting patch_pos_embed to fp32 for interpolation since `upsample_bicubic2d_out_frame` in nn.functional.interpolate is not implemented for 'torch.bfloat16' dtype. This will result in a slight overhead.ÚbicubicF)Úscale_factorÚmodeÚalign_cornerszNumber of patches for images (z/) don't match the shape of position embedding (Ú)©Údim)ºNNNé    )r`   :r8   NNr9   éþÿÿÿ)ÚshaperI   r6   r.   r?   ÚmathÚsqrtÚreshaperW   ÚpermuteÚdtyper   Úbfloat16ÚloggerÚwarning_onceÚtoÚfloatr   Ú
functionalÚinterpolateÚ
ValueErrorÚviewÚcatÚ	unsqueeze)rN   rR   rS   rT   rF   Ú	pos_embedrG   Úclass_pos_embedÚpatch_pos_embedr=   Únum_h_patchesÚnum_w_patchesÚsqrt_num_positionsÚfp32_upcastings   &&&&          r   Úinterpolate_pos_encodingÚ0IdeficsVisionEmbeddings.interpolate_pos_encoding]   sL  € ð !×&Ñ& qÕ)¨AÕ-ˆØ×+Ñ+¨D×,=Ñ,=Ó>ˆ	Ø!Ÿ™¨Õ*¨QÕ.ˆØÔ'¨F¬OØÐØ# D�/ˆØ# EÕ*ˆà×$Ñ$ RÕ(ˆ	Ø§+¡+×"8Ñ"8Õ8ˆØ§¡×!7Ñ!7Õ7ˆð (5°sÕ':¸MÈCÕ<O�}Ü!ŸYšY }Ó5ÐØ)×1Ñ1°!´SÐ9KÓ5LÌcÐRdÓNeÐgpÓqˆØ)×1Ñ1°!°Q¸¸1Ó=ˆØ(×.Ñ.´%·.±.Ñ@ˆßÜ×Ñðhôð .×0Ñ0´·±Ó=ˆOÜŸ-™-×3Ñ3ØØ'Õ<¸mÕ>`ÐaØØð	 4ó 
ˆ÷ Ø-×0Ñ0´·±Ó@ˆOÜˆ}Ó ×!6Ñ!6°rÕ!:Ô:¼cÀ-Ó>PÐTc×TiÑTiÐjlÕTmÔ>mÜØ0´°]Ó1CÄSÈÓEWÐ1WÐ0Xð Y0Ø0?×0EÑ0EÀbÕ0IÈ?×K`ÑK`ÐacÕKdÐ0dÐ/eÐefðhóð ð *×1Ñ1°!°Q¸¸1Ó=×BÑBÀ1ÀbÈ)ÓTˆÜ�yŠy˜/×3Ñ3°AÓ6¸ÐHÈaÔPÐPr    c                óT   <€ V ^8„  d   QhRS[ P                  RS[RS[ P                  /# )r   Úpixel_valuesr{   rU   )r   r   ÚboolrV   )r   r   s   "€r   r   r/   Ž   s0   ø€ ÷ ñ ¡E×$5Ñ$5ð ÑQUð Ñbg×bnÑbnñ r    c                ó‚  € VP                   w  r4rVV'       gM   WPP                  8w  g   W`P                  8w  d-   \        R V RV RV P                   RV P                   R2	4      hV P                  P                  P
                  pV P                  VP                  VR7      4      pVP                  ^4      P                  ^^4      pV P                  P                  V^R4      p	\        P                  ! W˜.^R7      p
V'       d   W P                  W¥V4      ,           p
V
# W P                  V P                  4      ,           p
V
# )zInput image size (Ú*z) doesn't match model (z8). You should try to set `interpolate_pos_encoding=True`)rh   r^   r9   )rc   r>   rp   rE   Úweightrh   rl   ÚflattenÚ	transposerB   rL   r   rr   r{   rI   r6   )rN   r~   r{   Ú
batch_sizerD   rS   rT   Útarget_dtypeÚpatch_embedsÚclass_embedsrR   s   &&&        r   ÚforwardÚIdeficsVisionEmbeddings.forwardŽ   s'  € Ø2>×2DÑ2DÑ/ˆ
 &ß'ØŸ™Ô(¨E·_±_Ô,DÜ Ø(¨¨°°%°ð 9ØŸ™Ð)¨¨4¯?©?Ð*;Ð;sðuóð ð
 ×+Ñ+×2Ñ2×8Ñ8ˆØ×+Ñ+¨L¯O©OÀ,¨OÓ,OÓPˆà#×+Ñ+¨AÓ.×8Ñ8¸¸AÓ>ˆà×+Ñ+×2Ñ2°:¸qÀ"ÓEˆÜ—Y’Y Ð;ÀÔCˆ
÷ $Ø#×&CÑ&CÀJÐX]Ó&^Õ^ˆJð Ðð $×&=Ñ&=¸d×>OÑ>OÓ&PÕPˆJàÐr    )	rB   r.   r=   r>   rF   rG   rE   r?   rI   )F)
r"   r#   r$   r%   r;   r{   r‰   r(   r)   Ú__classcell__©rO   r   s   @@r   r+   r+   E   s-   ù‡ € ÷qó q÷./Qð /Q÷b÷ ò 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   rV   rm   )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# )r8   )r_   rh   )ÚpÚtrainingr9   rb   )r   Úmatmulr„   r   rn   ÚsoftmaxÚfloat32rl   rh   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                   óX   a a€ ] tR t^Àt oRt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	# )ÚIdeficsVisionAttentionz=Multi-headed attention from 'Attention Is All You Need' paperc                ó    <€ V ^8„  d   QhRS[ /# r-   r   )r   r   s   "€r   r   Ú#IdeficsVisionAttention.__annotate__Ã   s   ø€ ÷ Bñ BÑ2ñ Br    c                ó<  <€ \         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                  4      V n        \        P                  ! V P                  V P                  4      V n        \        P                  ! V P                  V P                  4      V n        \        P                  ! V P                  V P                  4      V n        R# )z;embed_dim must be divisible by num_heads (got `embed_dim`: z and `num_heads`: z).FNg      à¿)r:   r;   r.   r<   r=   Únum_attention_headsÚ	num_headsÚhead_dimrp   ÚscaleÚattention_dropoutr”   Ú	is_causalr   ÚLinearÚk_projÚv_projÚq_projÚout_projrM   s   &&€r   r;   ÚIdeficsVisionAttention.__init__Ã   s  ø€ Ü‰ÑÔØŒØ×+Ñ+ˆŒØ×3Ñ3ˆŒØŸ™¨$¯.©.Õ8ˆŒØ�=‰=˜4Ÿ>™>Õ)¨T¯^©^Ô;ÜØMÈdÏnÉnÐM]ð ^Ø—N‘NÐ# 2ð'óð ð —]‘] DÕ(ˆŒ
Ø×/Ñ/ˆŒØˆŒä—i’i §¡°·±Ó?ˆŒÜ—i’i §¡°·±Ó?ˆŒÜ—i’i §¡°·±Ó?ˆŒÜŸ	š	 $§.¡.°$·.±.ÓAˆŽr    c                óÄ   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[S[,          RS[S[ P                  S[ P                  R,          3,          /# )r   r   r’   Nr�   rU   )r   rV   r
   r   r   )r   r   s   "€r   r   r¤   ×   s]   ø€ ÷ %)ñ %)á—|‘|ð%)ñ Ÿ™ 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 P                  V4      pV P	                  V4      pVP                  V4      P                  ^^4      pVP                  V4      P                  ^^4      pVP                  V4      P                  ^^4      p\        P                  ! V P                  P                  \        4      p	T	! V VVVV3RV P                  RV P                  RV P                  '       g   RMV P                  /VB 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 ChannelNr«   r“   r”   ç        r9   )rc   r¨   r¯   r­   r®   rq   r„   r	   Úget_interfacer.   Ú_attn_implementationr    r«   r©   r˜   r”   rf   rœ   r°   )rN   r   r’   r�   Úinput_shapeÚhidden_shapeÚqueriesÚkeysÚvaluesÚattention_interfacerŸ   rž   s   &&&,        r   r‰   ÚIdeficsVisionAttention.forward×   s`  € ð $×)Ñ)¨#¨2Ð.ˆà8˜Ð8 bÐ8¨$¯-©-Ñ8ˆØ—+‘+˜mÓ,ˆØ�{‰{˜=Ó)ˆØ—‘˜]Ó+ˆà—,‘,˜|Ó,×6Ñ6°q¸!Ó<ˆØ�y‰y˜Ó&×0Ñ0°°AÓ6ˆØ—‘˜\Ó*×4Ñ4°Q¸Ó:ˆä(?×(MÒ(MØ�K‰K×,Ñ,Ô.Eó)
Ðñ %8ØØØØØñ
%
ð —n‘nð
%
ð —J‘Jð
%
ð  $Ÿ}Ÿ}˜}‘C°$·,±,ð
%
ð ñ
%
Ñ!ˆð "×)Ò)Ð;¨;Ð;¸Ó;×FÑFÓHˆØ—m‘m KÓ0ˆØÐ(Ð(r    )r.   r”   r=   r¨   r«   r­   r§   r°   r¯   r©   r®   ©N©
r"   r#   r$   r%   r&   r;   r‰   r(   r)   r‹   rŒ   s   @@r   r¢   r¢   À   s#   ù‡ € ÙG÷Bó B÷(%)÷ %)ò %)r    r¢   c                   óD   a a€ ] tR tRt oV 3R ltV3R lR ltRtVtV ;t# )ÚIdeficsVisionMLPé   c                ó(  <€ \         SV `  4        Wn        \        VP                  ,          V n        \        P                  ! VP                  VP                  4      V n
        \        P                  ! VP                  VP                  4      V n        R # r¾   )r:   r;   r.   r   Ú
hidden_actÚactivation_fnr   r¬   r<   Úintermediate_sizeÚfc1Úfc2rM   s   &&€r   r;   ÚIdeficsVisionMLP.__init__  sb   ø€ Ü‰ÑÔØŒÜ# F×$5Ñ$5Õ6ˆÔÜ—9’9˜V×/Ñ/°×1IÑ1IÓJˆŒÜ—9’9˜V×5Ñ5°v×7IÑ7IÓJˆŽr    c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   r   rU   )r   rV   )r   r   s   "€r   r   ÚIdeficsVisionMLP.__annotate__  s#   ø€ ÷ ñ ¡U§\¡\ð ±e·l±lñ r    c                ól   € V P                  V4      pV P                  V4      pV P                  V4      pV# r¾   )rÇ   rÅ   rÈ   )rN   r   s   &&r   r‰   ÚIdeficsVisionMLP.forward  s4   € ØŸ™ Ó/ˆØ×*Ñ*¨=Ó9ˆØŸ™ Ó/ˆØÐr    )rÅ   r.   rÇ   rÈ   ©	r"   r#   r$   r%   r;   r‰   r(   r)   r‹   rŒ   s   @@r   rÁ   rÁ      s   ù‡ € õK÷÷ ð 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# )ÚIdeficsVisionEncoderLayeri  c                ó    <€ V ^8„  d   QhRS[ /# r-   r   )r   r   s   "€r   r   Ú&IdeficsVisionEncoderLayer.__annotate__  s   ø€ ÷ Sñ SÑ2ñ Sr    c                óJ  <€ \         SV `  4        VP                  V n        \	        V4      V n        \        P                  ! V P                  VP                  R 7      V n	        \        V4      V n        \        P                  ! V P                  VP                  R 7      V n        R# ©)ÚepsN)r:   r;   r<   r=   r¢   Ú	self_attnr   Ú	LayerNormÚlayer_norm_epsÚlayer_norm1rÁ   ÚmlpÚlayer_norm2rM   s   &&€r   r;   Ú"IdeficsVisionEncoderLayer.__init__  sm   ø€ Ü‰ÑÔØ×+Ñ+ˆŒÜ/°Ó7ˆŒÜŸ<š<¨¯©¸F×<QÑ<QÔRˆÔÜ# FÓ+ˆŒÜŸ<š<¨¯©¸F×<QÑ<QÔRˆÖr    c                ó~   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[S[,          RS[ P                  /# )r   r   r’   r�   rU   )r   rV   r
   r   r   )r   r   s   "€r   r   rÒ     sG   ø€ ÷ ñ á—|‘|ðñ Ÿ™ðñ Ñ+Õ,ð	ñ
 
×	Ñ	ñr    c                óÄ   € TpV P                  V4      pV P                  ! RR VRV/VB w  rWA,           pTpV P                  V4      pV P                  V4      pWA,           pV# )r   r’   r!   )rÙ   rÖ   rÛ   rÚ   )rN   r   r’   r�   ÚresidualÚ_s   &&&,  r   r‰   Ú!IdeficsVisionEncoderLayer.forward  s   € ð !ˆà×(Ñ(¨Ó7ˆØŸ>š>ñ 
Ø'ð
à)ð
ð ñ
Ñˆð
 !Õ0ˆà ˆØ×(Ñ(¨Ó7ˆØŸ™ Ó/ˆØ Õ0ˆàÐr    )r=   rÙ   rÛ   rÚ   rÖ   rÎ   rŒ   s   @@r   rÐ   rÐ     s    ù‡ € ÷Só S÷÷ ð r    rÐ   c                   óX   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tRtVtV ;t	# )	ÚIdeficsVisionEncoderi2  z«
Transformer encoder consisting of `config.num_hidden_layers` self attention layers. Each layer is a
[`IdeficsVisionEncoderLayer`].

Args:
    config: IdeficsVisionConfig
c                ó    <€ V ^8„  d   QhRS[ /# r-   r   )r   r   s   "€r   r   Ú!IdeficsVisionEncoder.__annotate__;  s   ø€ ÷ ,ñ ,Ñ2ñ ,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)
r:   r;   r.   r   Ú
ModuleListÚrangeÚnum_hidden_layersrÐ   ÚlayersÚgradient_checkpointing)rN   r.   rà   rO   s   && €r   r;   ÚIdeficsVisionEncoder.__init__;  sU   ø€ Ü‰ÑÔØŒÜ—m’mÔPUÐV\×VnÑVnÔPoÓ$pÑPoÈ1Ô%>¸vÖ%FÑPoÑ$pÓqˆŒØ&+ˆÖ#ùò %qs   ½A&c                ó^   <€ V ^8„  d   QhRS[ P                  R,          RS[S[,          RS[/# )r   r’   Nr�   rU   )r   rV   r
   r   r   )r   r   s   "€r   r   rå   A  s:   ø€ ÷ 
ñ 
ñ Ÿ™ tÕ+ð
ñ Ñ+Õ,ð	
ñ
 
ñ
r    c                óX   € TpV P                    F  pV! VV3/ VB pK  	  \        VR 7      # ))r   )rê   r   )rN   Úinputs_embedsr’   r�   r   Úencoder_layers   &&&,  r   r‰   ÚIdeficsVisionEncoder.forwardA  sC   € ð &ˆØ!Ÿ[œ[ˆMÙ)ØØñð ñŠMñ )ô Ø+ô
ð 	
r    )r.   rë   rê   r¾   r¿   rŒ   s   @@r   rã   rã   2  s#   ù‡ € ñ÷,ó ,÷
÷ 
ò 
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# )ÚIdeficsVisionTransformeriU  c                ó    <€ V ^8„  d   QhRS[ /# r-   r   )r   r   s   "€r   r   Ú%IdeficsVisionTransformer.__annotate__V  s   ø€ ÷ Qñ QÑ2ñ Qr    c                ó   <€ \         SV `  4        Wn        VP                  p\	        V4      V n        \        P                  ! W!P                  R 7      V n	        \        V4      V n        \        P                  ! W!P                  R 7      V n        R# rÔ   )r:   r;   r.   r<   r+   rR   r   r×   rØ   Úpre_layrnormrã   ÚencoderÚpost_layernorm)rN   r.   r=   rO   s   && €r   r;   Ú!IdeficsVisionTransformer.__init__V  sd   ø€ Ü‰ÑÔØŒØ×&Ñ&ˆ	ä1°&Ó9ˆŒÜŸLšL¨×8MÑ8MÔNˆÔÜ+¨FÓ3ˆŒÜ Ÿlšl¨9×:OÑ:OÔPˆÖr    c                ól   <€ V ^8„  d   QhRS[ P                  R,          RS[R,          RS[S[,          /# )r   r~   Nr{   rU   )r   r   r   r   r   )r   r   s   "€r   r   rõ   a  s>   ø€ ÷ 
ñ 
á×'Ñ'¨$Õ.ð
ñ #'¨¥+ð
ñ
 
Ñ+Õ	+ñ
r    c                óô   € Vf   \        R4      hV P                  WR7      pV P                  V4      pV P                  ! RRV/VB pVP                  pVR,          pV P                  V4      p\        VVR7      # )z
Returns:

z You have to specify pixel_values)r{   rï   )r   Úpooler_outputr!   )r`   ra   r`   )rp   rR   r÷   rø   r   rù   r   )rN   r~   r{   r�   r   Úencoder_outputsr   Úpooled_outputs   &&&,    r   r‰   Ú IdeficsVisionTransformer.forwarda  s�   € ð ÒÜÐ?Ó@Ð@àŸ™¨˜ÓhˆØ×)Ñ)¨-Ó8ˆà+/¯<ª<ñ ,
Ø'ð,
àñ,
ˆð
 ,×=Ñ=ÐØ)¨'Õ2ˆØ×+Ñ+¨MÓ:ˆä)Ø/Ø'ô
ð 	
r    )r.   rR   rø   rù   r÷   )NFrÎ   rŒ   s   @@r   ró   ró   U  s    ù‡ € ÷Qó Q÷
÷ 
ò 
r    ró   )r´   )%r&   rd   Úcollections.abcr   Údataclassesr   r   r   Úactivationsr   Úmodeling_layersr   Úmodeling_outputsr   r   Úmodeling_utilsr	   Úprocessing_utilsr
   Úutilsr   r   r   Úconfiguration_ideficsr   Ú
get_loggerr"   rj   r   r•   r+   r    r¢   rÁ   rÐ   rã   ró   r!   r    r   Ú<module>r     sÍ   ðñ [ã Ý $Ý !ã Ý å !Ý 9ß KÝ 5Ý &÷ñ õ
 7ð 
×	Ò	˜HÓ	%€ð ô<˜{ó <ó ð<ô:`˜bŸi™iô `÷H%ô.<)˜RŸY™Yô <)ô@�r—y‘yô ô Ð :ô ôD
˜2Ÿ9™9ô 
ôF(
˜rŸy™yö (
r    