+
    œ°³jÝª  ã                   ó.  € ^ RI H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 ^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 ^RIHt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 R]PX                  4      t-RDR R llt. ! R R]PX                  4      t/ ! R R]PX                  4      t0 ! R R]PX                  4      t1 ! R R]PX                  4      t2 ! R R ]PX                  4      t3 ! R! R"]4      t4 ! R# R$]PX                  4      t5 ! R% R&]PX                  4      t6 ! R' R(]PX                  4      t7 ! R) R*]PX                  4      t8 ! R+ R,]4      t9 ! R- R.]PX                  4      t: ! R/ R0]PX                  4      t;]  ! R1 R2]4      4       t<] ! R3R47       ! R5 R6]<4      4       t=] ! R7R47       ! R8 R9]<4      4       t> ! R: R;]<4      t?R< R= lt@R> R? ltAR@ RA ltB]  ! RB RC]<4      4       tC. REOtDR# )Fé    )ÚCallable)Ú	dataclass)ÚAnyN)Úinitialization)ÚACT2FN)Úcreate_bidirectional_mask)ÚGradientCheckpointingLayer)ÚBaseModelOutputÚBaseModelOutputWithPoolingÚ'BaseModelOutputWithPoolingAndProjection)ÚALL_ATTENTION_FUNCTIONSÚPreTrainedModel)ÚUnpack)Úapply_chunking_to_forward)ÚModelOutputÚTransformersKwargsÚauto_docstringÚcan_return_tupleÚ	torch_int)Úmerge_with_config_defaults)Úcapture_outputs)ÚAltCLIPConfigÚAltCLIPTextConfigÚAltCLIPVisionConfigc                   ó^   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# )ÚAltCLIPOutputaq  
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 [`AltCLIPTextModel`].
image_embeds (`torch.FloatTensor` of shape `(batch_size, output_dim`):
    The image embeddings obtained by applying the projection layer to the pooled output of [`AltCLIPVisionModel`].
text_model_output (`BaseModelOutputWithPooling`):
    The output of the [`AltCLIPTextModel`].
vision_model_output (`BaseModelOutputWithPooling`):
    The output of the [`AltCLIPVisionModel`].
Nc                ó0   <€ V ^8„  d   QhRS[ S[,          /# )é   Úreturn)Útupler   )ÚformatÚ__classdict__s   "€Úm/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/altclip/modeling_altclip.pyÚ__annotate__ÚAltCLIPOutput.__annotate__G   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>Ú)AltCLIPOutput.to_tuple.<locals>.<genexpr>H   s)   é € Ð^ÑP]È1¤Z°´;×%?Ò%?�Q—Z‘Z”\ÀQÔFÓP]ùs   ‚57)r    Úvalues)Úselfs   &r#   r+   ÚAltCLIPOutput.to_tupleG   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__r4   r5   r6   r7   r8   r9   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   c                   óp   a a€ ] tR t^Kt oRtV 3R ltRV3R lR llt]R 4       t]R	R l4       t	Rt
VtV ;t# )
ÚAltRobertaEmbeddingszGConstruct the embeddings from word, position and token_type embeddings.c                óˆ  <€ \         SV `  4        \        P                  ! VP                  VP
                  VP                  R 7      V n        \        P                  ! VP                  VP
                  4      V n	        \        P                  ! VP
                  VP                  R7      V n
        \        P                  ! VP                  4      V n        \        P                  ! \         P"                  ! VP$                  4      P'                  R4      RR7      V n        \        P                  ! \         P*                  ! V P(                  P-                  4       \         P.                  R7      RR7      V n        VP                  V n        \        P                  ! VP$                  VP
                  V P2                  R 7      V n        R# ))Úpadding_idx©ÚepsF©Ú
persistent©ÚdtypeN©é   éÿÿÿÿ)ÚsuperÚ__init__ÚnnÚ	EmbeddingÚ
vocab_sizeÚhidden_sizeÚpad_token_idÚword_embeddingsÚtype_vocab_sizeÚtoken_type_embeddingsÚ	LayerNormÚlayer_norm_epsÚDropoutÚhidden_dropout_probÚdropoutÚBufferr;   ÚarangeÚmax_position_embeddingsÚexpandÚposition_idsÚzerosÚsizeÚlongÚtoken_type_idsrI   Úposition_embeddings©r1   ÚconfigÚ	__class__s   &&€r#   rT   ÚAltRobertaEmbeddings.__init__N   s%  ø€ Ü‰ÑÔÜ!Ÿ|š|¨F×,=Ñ,=¸v×?QÑ?QÐ_e×_rÑ_rÔsˆÔÜ%'§\¢\°&×2HÑ2HÈ&×J\ÑJ\Ó%]ˆÔ"äŸš f×&8Ñ&8¸f×>SÑ>SÔTˆŒÜ—z’z &×"<Ñ"<Ó=ˆŒäŸIšI¤e§l¢l°6×3QÑ3QÓ&R×&YÑ&YÐZaÓ&bÐotÔuˆÔÜ Ÿiši¬¯ª°D×4EÑ4E×4JÑ4JÓ4LÔTY×T^ÑT^Ô(_ÐlqÔrˆÔà!×.Ñ.ˆÔÜ#%§<¢<Ø×*Ñ*¨F×,>Ñ,>ÈD×L\ÑL\ô$
ˆÖ r&   c                óÚ   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[RS[ P                  /# )r   Ú	input_idsNrj   rf   Úinputs_embedsÚpast_key_values_lengthr   )r;   Ú
LongTensorr<   ÚintÚTensor)r!   r"   s   "€r#   r$   Ú!AltRobertaEmbeddings.__annotate__^   sw   ø€ ÷ .ñ .á×#Ñ# dÕ*ð.ñ ×(Ñ(¨4Õ/ð.ñ ×&Ñ&¨Õ-ð	.ñ
 ×(Ñ(¨4Õ/ð.ñ !$ð.ñ 
�‰ñ.r&   c                ó4  € Vf=   Ve   V P                  WP                  V4      pMV P                  W@P                  4      pVe   VP                  4       pMVP                  4       R R pVw  rxVf¿   \	        V R4      '       dr   V P
                  P                  VP                  4      P                  VP                  ^ ,          R4      p	\        P                  ! V	^VR7      p	V	P                  Wx4      pM;\        P                  ! V\        P                  V P                  P                  R7      pVf   V P                  V4      pV P!                  V4      p
WJ,           pV P#                  V4      pW¼,           pV P%                  V4      pV P'                  V4      pV# )Nrj   )ÚdimÚindex©rO   ÚdevicerR   )Ú"create_position_ids_from_input_idsrI   Ú&create_position_ids_from_inputs_embedsrh   Úhasattrrj   Útor|   re   Úshaper;   Úgatherrg   ri   rf   rZ   r\   rk   r]   ra   )r1   rq   rj   rf   rr   rs   Úinput_shapeÚ
batch_sizeÚ
seq_lengthÚbuffered_token_type_idsr\   Ú
embeddingsrk   s   &&&&&&       r#   ÚforwardÚAltRobertaEmbeddings.forward^   st  € ð ÒØÒ$à#×FÑFØ×/Ñ/Ð1Gó ‘ð  $×JÑJÈ=×ZjÑZjÓk�àÒ Ø#Ÿ.™.Ó*‰Kà'×,Ñ,Ó.¨s°Ð3ˆKà!,Ñˆ
ð
 Ò!Ü�tÐ-×.Ò.à*.×*=Ñ*=×*@Ñ*@À×ATÑATÓ*U×*\Ñ*\Ð]i×]oÑ]oÐpqÕ]rÐtvÓ*wÐ'Ü*/¯,ª,Ð7NÐTUÐ]iÔ*jÐ'Ø!8×!?Ñ!?À
Ó!W‘ä!&§¢¨[ÄÇ
Á
ÐSW×SdÑSd×SkÑSkÔ!l�àÒ Ø ×0Ñ0°Ó;ˆMØ $× :Ñ :¸>Ó JÐØ"Õ:ˆ
à"×6Ñ6°|ÓDÐØÕ5ˆ
à—^‘^ JÓ/ˆ
Ø—\‘\ *Ó-ˆ
ØÐr&   c                ó  € V P                  4       RR pV^,          p\        P                  ! V^,           W1,           ^,           \        P                  V P                  R7      pVP                  ^ 4      P                  V4      # )z¯
We are provided embeddings directly. We cannot infer which are padded so just generate sequential position ids.

Args:
    inputs_embeds: torch.Tensor

Returns: torch.Tensor
Nr{   rR   )rh   r;   rc   ri   r|   Ú	unsqueezere   )rr   rI   rƒ   Úsequence_lengthrf   s   &&   r#   r~   Ú;AltRobertaEmbeddings.create_position_ids_from_inputs_embedsŽ   sn   € ð $×(Ñ(Ó*¨3¨BÐ/ˆØ% a�.ˆä—|’|Ø˜!�O˜_Õ:¸QÕ>ÄeÇjÁjÐYf×YmÑYmô
ˆð ×%Ñ% aÓ(×/Ñ/°Ó<Ð<r&   c                óØ   € V P                  V4      P                  4       p\        P                  ! V^R7      P	                  V4      V,           V,          pVP                  4       V,           # )zí
Replace non-padding symbols with their position numbers. Position numbers begin at padding_idx+1. Padding symbols
are ignored. This is modified from fairseq's `utils.make_positions`.

Args:
    x: torch.Tensor x:

Returns: torch.Tensor
©ry   )Úneru   r;   ÚcumsumÚtype_asri   )rq   rI   rs   ÚmaskÚincremental_indicess   &&&  r#   r}   Ú7AltRobertaEmbeddings.create_position_ids_from_input_ids    sW   € ð �|‰|˜KÓ(×,Ñ,Ó.ˆÜ$Ÿ|š|¨D°aÔ8×@Ñ@ÀÓFÐI_Õ_ÐcgÕgÐØ"×'Ñ'Ó)¨KÕ7Ð7r&   )r]   ra   rI   rk   rf   r\   rj   rZ   )NNNNr   )r   )r>   r?   r@   rA   rB   rT   rˆ   Ústaticmethodr~   r}   rD   rE   Ú__classcell__©rn   r"   s   @@r#   rG   rG   K   sE   ù‡ € ÙQõ
÷ .ò .ð` ñ=ó ð=ð" ó8ó ÷8ð 8r&   rG   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Úscalingra   )rU   ÚModuler;   rv   Úfloat)r!   s   "r#   r$   r$   ±   sg   € ÷ %ñ %Ü�I‰Ið%ä�<‰<ð%ô 
�‰ð%ô �<‰<ð	%ô
 —L‘L 4Õ'ð%ô ð%ô ñ%r&   c                 óÎ  € \         P                  ! WP                  ^^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   )ry   rO   )ÚpÚtrainingrR   )r;   ÚmatmulÚ	transposerU   Ú
functionalÚsoftmaxÚfloat32r€   rO   ra   r¤   Ú
contiguous)
rš   r›   rœ   r�   rž   rŸ   ra   ÚkwargsÚattn_weightsÚattn_outputs
   &&&&&&&,  r#   Úeager_attention_forwardr®   ±   s°   € ô —<’< §}¡}°Q¸Ó':Ó;¸gÕE€LØÒ!Ø#Õ4ˆä—=‘=×(Ñ(¨¸2ÄUÇ]Á]Ð(ÓS×VÑVÐW\×WbÑWbÓc€LÜ—=‘=×(Ñ(¨È6Ï?É?Ð(Ó[€Lä—,’,˜|Ó3€KØ×'Ñ'¨¨1Ó-×8Ñ8Ó:€KØÐ$Ð$r&   c                   óH   a a€ ] tR t^Çt oV 3R ltRV3R lR lltRtVtV ;t# )ÚAltRobertaSelfAttentionc                ój  <€ \         SV `  4        VP                  VP                  ,          ^ 8w  d9   \	        VR4      '       g'   \        RVP                   RVP                   R24      hWn        VP                  V n        \        VP                  VP                  ,          4      V n        V P                  V P                  ,          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                   4      V n        VP                   V n        V P                  R,          V n        RV n        R# )r   Úembedding_sizezThe hidden size (z6) is not a multiple of the number of attention heads (Ú)FNç      à¿)rS   rT   rX   Únum_attention_headsr   Ú
ValueErrorrm   ru   Úattention_head_sizeÚall_head_sizerU   ÚLinearr›   rœ   r�   r_   Úattention_probs_dropout_probra   Úattention_dropoutrŸ   Ú	is_causalrl   s   &&€r#   rT   Ú AltRobertaSelfAttention.__init__È   sK  ø€ Ü‰ÑÔØ×Ñ × :Ñ :Õ:¸aÔ?ÌÐPVÐXh×HiÒHiÜØ# F×$6Ñ$6Ð#7ð 8Ø ×4Ñ4Ð5°Qð8óð ð
 ŒØ#)×#=Ñ#=ˆÔ Ü#& v×'9Ñ'9¸F×<VÑ<VÕ'VÓ#WˆÔ Ø!×5Ñ5¸×8PÑ8PÕPˆÔä—Y’Y˜v×1Ñ1°4×3EÑ3EÓFˆŒ
Ü—9’9˜V×/Ñ/°×1CÑ1CÓDˆŒÜ—Y’Y˜v×1Ñ1°4×3EÑ3EÓFˆŒ
ä—z’z &×"EÑ"EÓFˆŒØ!'×!DÑ!DˆÔØ×/Ñ/°Õ5ˆŒØˆŽ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   Úhidden_statesrž   Nr«   r   )r;   rv   r<   r   r   r    )r!   r"   s   "€r#   r$   Ú$AltRobertaSelfAttention.__annotate__Þ   s_   ø€ ÷ )ñ )á—|‘|ð)ñ ×)Ñ)¨DÕ0ð)ñ Ñ+Õ,ð	)ñ
 
‰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	! V VVVV3RV P                  '       g   RMV P                  RV P                  /VB w  r«V
P                  ! . VORN5!  P!                  4       p
W«3# )Nra   ç        rŸ   rR   )r�   r·   r›   Úviewr¦   rœ   r�   r   Úget_interfacerm   Ú_attn_implementationr®   r¤   r»   rŸ   Úreshaperª   )r1   rÀ   rž   r«   rƒ   Úhidden_shapeÚquery_statesÚ
key_statesÚvalue_statesÚattention_interfacer­   r¬   s   &&&,        r#   rˆ   ÚAltRobertaSelfAttention.forwardÞ   sA  € ð $×)Ñ)¨#¨2Ð.ˆØC˜ÐC bÐC¨$×*BÑ*BÑCˆà—z‘z -Ó0×5Ñ5°lÓC×MÑMÈaÐQRÓSˆØ—X‘X˜mÓ,×1Ñ1°,Ó?×IÑIÈ!ÈQÓOˆ
Ø—z‘z -Ó0×5Ñ5°lÓC×MÑMÈaÐQRÓSˆä(?×(MÒ(MØ�K‰K×,Ñ,Ô.Eó)
Ðñ %8ØØØØØñ	%
ð  $Ÿ}Ÿ}˜}‘C°$×2HÑ2Hð	%
ð —L‘Lð	%
ð ñ	%
Ñ!ˆð "×)Ò)Ð;¨;Ð;¸Ó;×FÑFÓHˆØÐ(Ð(r&   )r¸   r»   r·   rm   ra   r¼   rœ   rµ   r›   rŸ   r�   r)   ©	r>   r?   r@   rA   rT   rˆ   rD   rE   r—   r˜   s   @@r#   r°   r°   Ç   s   ù‡ € õ÷,)÷ )ò )r&   r°   c                   óD   a a€ ] tR t^þt oV 3R ltV3R lR ltRtVtV ;t# )ÚAltRobertaSelfOutputc                ó0  <€ \         SV `  4        \        P                  ! VP                  VP                  4      V n        \        P                  ! VP                  VP                  R 7      V n        \        P                  ! VP                  4      V n
        R# ©rJ   N)rS   rT   rU   r¹   rX   Údenser]   r^   r_   r`   ra   rl   s   &&€r#   rT   ÚAltRobertaSelfOutput.__init__ÿ   s`   ø€ Ü‰ÑÔÜ—Y’Y˜v×1Ñ1°6×3EÑ3EÓFˆŒ
ÜŸš f×&8Ñ&8¸f×>SÑ>SÔTˆŒÜ—z’z &×"<Ñ"<Ó=ˆŽr&   c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# ©r   rÀ   Úinput_tensorr   ©r;   rv   )r!   r"   s   "€r#   r$   Ú!AltRobertaSelfOutput.__annotate__  ó1   ø€ ÷ ñ ¡U§\¡\ð ÁÇÁð ÑRW×R^ÑR^ñ r&   c                óx   € V P                  V4      pV P                  V4      pV P                  W,           4      pV# r)   ©rÓ   ra   r]   ©r1   rÀ   r×   s   &&&r#   rˆ   ÚAltRobertaSelfOutput.forward  ó5   € ØŸ
™
 =Ó1ˆØŸ™ ]Ó3ˆØŸ™ }Õ'CÓDˆØÐr&   ©r]   rÓ   ra   rÎ   r˜   s   @@r#   rÐ   rÐ   þ   ó   ù‡ € õ>÷÷ ð r&   rÐ   c                   óH   a a€ ] tR tRt oV 3R ltRV3R lR lltRtVtV ;t# )ÚAltRobertaAttentioni  c                ód   <€ \         SV `  4        \        V4      V n        \	        V4      V n        R # r)   )rS   rT   r°   r1   rÐ   Úoutputrl   s   &&€r#   rT   ÚAltRobertaAttention.__init__  s&   ø€ Ü‰ÑÔÜ+¨FÓ3ˆŒ	Ü*¨6Ó2ˆŽr&   c                óŒ   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[S[,          RS[ P                  /# r¿   ©r;   rv   r<   r   r   )r!   r"   s   "€r#   r$   Ú AltRobertaAttention.__annotate__  sL   ø€ ÷ ñ á—|‘|ðñ ×)Ñ)¨DÕ0ðñ Ñ+Õ,ð	ñ
 
�‰ñr&   c                óZ   € TpV P                   ! V3R V/VB w  rV P                  W4      pV# ©rž   )r1   rå   ©r1   rÀ   rž   r«   ÚresidualÚ_s   &&&,  r#   rˆ   ÚAltRobertaAttention.forward  sE   € ð !ˆØŸ9š9Øñ
à)ð
ð ñ
Ñˆð
 Ÿ™ MÓ<ˆØÐr&   )rå   r1   r)   rÎ   r˜   s   @@r#   rã   rã     s   ù‡ € õ3÷
÷ ò 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# )ÚAltRobertaIntermediatei"  c                ó"  <€ \         SV `  4        \        P                  ! VP                  VP
                  4      V n        \        VP                  \        4      '       d   \        VP                  ,          V n        R # VP                  V n        R # r)   )rS   rT   rU   r¹   rX   Úintermediate_sizerÓ   r*   Ú
hidden_actÚstrr   Úintermediate_act_fnrl   s   &&€r#   rT   ÚAltRobertaIntermediate.__init__#  s`   ø€ Ü‰ÑÔÜ—Y’Y˜v×1Ñ1°6×3KÑ3KÓLˆŒ
Ü�f×'Ñ'¬×-Ò-Ü'-¨f×.?Ñ.?Õ'@ˆDÖ$à'-×'8Ñ'8ˆDÖ$r&   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# ©r   rÀ   r   rØ   )r!   r"   s   "€r#   r$   Ú#AltRobertaIntermediate.__annotate__+  s#   ø€ ÷ ñ ¡U§\¡\ð ±e·l±lñ r&   c                óJ   € V P                  V4      pV P                  V4      pV# r)   ©rÓ   rö   ©r1   rÀ   s   &&r#   rˆ   ÚAltRobertaIntermediate.forward+  s&   € ØŸ
™
 =Ó1ˆØ×0Ñ0°Ó?ˆØÐr&   rü   rÎ   r˜   s   @@r#   rñ   rñ   "  s   ù‡ € õ9÷÷ ð 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# )ÚAltRobertaOutputi1  c                ó0  <€ \         SV `  4        \        P                  ! VP                  VP
                  4      V n        \        P                  ! VP
                  VP                  R 7      V n        \        P                  ! VP                  4      V n        R# rÒ   )rS   rT   rU   r¹   ró   rX   rÓ   r]   r^   r_   r`   ra   rl   s   &&€r#   rT   ÚAltRobertaOutput.__init__2  s`   ø€ Ü‰ÑÔÜ—Y’Y˜v×7Ñ7¸×9KÑ9KÓLˆŒ
ÜŸš f×&8Ñ&8¸f×>SÑ>SÔTˆŒÜ—z’z &×"<Ñ"<Ó=ˆŽr&   c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# rÖ   rØ   )r!   r"   s   "€r#   r$   ÚAltRobertaOutput.__annotate__8  rÚ   r&   c                óx   € V P                  V4      pV P                  V4      pV P                  W,           4      pV# r)   rÜ   rÝ   s   &&&r#   rˆ   ÚAltRobertaOutput.forward8  rß   r&   rà   rÎ   r˜   s   @@r#   r   r   1  rá   r&   r   c                   óN   a a€ ] tR tRt oV 3R ltRV3R lR lltR tRtVtV ;t	# )ÚAltRobertaLayeri?  c                ó´   <€ \         SV `  4        VP                  V n        ^V n        \	        V4      V n        \        V4      V n        \        V4      V n	        R# )rQ   N)
rS   rT   Úchunk_size_feed_forwardÚseq_len_dimrã   Ú	attentionrñ   Úintermediater   rå   rl   s   &&€r#   rT   ÚAltRobertaLayer.__init__@  sI   ø€ Ü‰ÑÔØ'-×'EÑ'EˆÔ$ØˆÔÜ,¨VÓ4ˆŒÜ2°6Ó:ˆÔÜ& vÓ.ˆŽr&   c                óŒ   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[S[,          RS[ P                  /# r¿   rè   )r!   r"   s   "€r#   r$   ÚAltRobertaLayer.__annotate__H  sL   ø€ ÷ ñ á—|‘|ðñ ×)Ñ)¨DÕ0ðñ Ñ+Õ,ð	ñ
 
�‰ñr&   c                óˆ   € V P                   ! V3R V/VB p\        V P                  V P                  V P                  V4      pV# rë   )r  r   Úfeed_forward_chunkr
  r  )r1   rÀ   rž   r«   s   &&&,r#   rˆ   ÚAltRobertaLayer.forwardH  sW   € ð ŸšØñ
à)ð
ð ñ
ˆô 2Ø×#Ñ# T×%AÑ%AÀ4×CSÑCSÐUbó
ˆð Ðr&   c                óJ   € V P                  V4      pV P                  W!4      pV# r)   )r  rå   )r1   Úattention_outputÚintermediate_outputÚlayer_outputs   &&  r#   r  Ú"AltRobertaLayer.feed_forward_chunkZ  s)   € Ø"×/Ñ/Ð0@ÓAÐØ—{‘{Ð#6ÓIˆØÐr&   )r  r
  r  rå   r  r)   )
r>   r?   r@   rA   rT   rˆ   r  rD   rE   r—   r˜   s   @@r#   r  r  ?  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	# )	ÚAltRobertaEncoderi`  z¦
Transformer encoder consisting of `config.num_hidden_layers` self attention layers. Each layer is a
[`AltRobertaEncoderLayer`].

Args:
    config: AltCLIPTextConfig
c                ó    <€ V ^8„  d   QhRS[ /# ©r   rm   ©r   )r!   r"   s   "€r#   r$   ÚAltRobertaEncoder.__annotate__i  s   ø€ ÷ ,ñ ,Ñ0ñ ,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)
rS   rT   rm   rU   Ú
ModuleListÚrangeÚnum_hidden_layersr  ÚlayersÚgradient_checkpointing©r1   rm   rî   rn   s   && €r#   rT   ÚAltRobertaEncoder.__init__i  sR   ø€ Ü‰ÑÔØŒÜ—m’mÄeÈF×LdÑLdÔFeÓ$fÑFeÀ¤_°VÖ%<ÑFeÑ$fÓgˆŒØ&+ˆÖ#ùò %gó   ½A&c                ó^   <€ V ^8„  d   QhRS[ P                  R,          RS[S[,          RS[/# ©r   rž   Nr«   r   ©r;   rv   r   r   r
   )r!   r"   s   "€r#   r$   r  o  ó:   ø€ ÷ 
ñ 
ñ Ÿ™ 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
   ©r1   rr   rž   r«   rÀ   Úencoder_layers   &&&,  r#   rˆ   ÚAltRobertaEncoder.forwardo  óC   € ð &ˆØ!Ÿ[œ[ˆMÙ)ØØñð ñŠMñ )ô Ø+ô
ð 	
r&   ©rm   r%  r$  r)   ©
r>   r?   r@   rA   rB   rT   rˆ   rD   rE   r—   r˜   s   @@r#   r  r  `  ó#   ù‡ € ñ÷,ó ,÷
÷ 
ò 
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# )ÚAltRobertaPooleri‚  c                ó¸   <€ \         SV `  4        \        P                  ! VP                  VP                  4      V n        \        P                  ! 4       V n        R # r)   )rS   rT   rU   r¹   rX   rÓ   ÚTanhÚ
activationrl   s   &&€r#   rT   ÚAltRobertaPooler.__init__ƒ  s9   ø€ Ü‰ÑÔÜ—Y’Y˜v×1Ñ1°6×3EÑ3EÓFˆŒ
ÜŸ'š'›)ˆŽr&   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# rù   rØ   )r!   r"   s   "€r#   r$   ÚAltRobertaPooler.__annotate__ˆ  s#   ø€ ÷ ñ ¡U§\¡\ð ±e·l±lñ r&   c                ó\   € VR,          pV P                  V4      pV P                  V4      pV# )ºNNN©rA  r   )rÓ   r<  )r1   rÀ   Úfirst_token_tensorÚpooled_outputs   &&  r#   rˆ   ÚAltRobertaPooler.forwardˆ  s2   € ð +¨4Õ0ÐØŸ
™
Ð#5Ó6ˆØŸ™¨Ó6ˆØÐr&   )r<  rÓ   rÎ   r˜   s   @@r#   r9  r9  ‚  s   ù‡ € õ$÷
÷ ð r&   r9  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	# )	ÚAltCLIPAttentioni‘  z=Multi-headed attention from 'Attention Is All You Need' paperc                ó0   <€ V ^8„  d   QhRS[ S[,          /# r  )r   r   )r!   r"   s   "€r#   r$   ÚAltCLIPAttention.__annotate__”  s   ø€ ÷ Bñ BÑ2Ñ5FÕFñ Br&   c                ó˜  <€ \         SV `  4        Wn        VP                  V n        VP
                  V n        V P                  V P                  ,          V n        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# )ç      à?FNr´   )rS   rT   rm   rX   Ú	embed_dimrµ   Ú	num_headsÚhead_dimÚscaler»   ra   r¼   rU   r¹   Úk_projÚv_projÚq_projÚout_projrl   s   &&€r#   rT   ÚAltCLIPAttention.__init__”  sÍ   ø€ Ü‰ÑÔØŒØ×+Ñ+ˆŒØ×3Ñ3ˆŒØŸ™¨$¯.©.Õ8ˆŒØ—]‘] 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;   rv   r   r   r    )r!   r"   s   "€r#   r$   rI  £  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                  '       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Ÿ   ra   rÃ   rR   )r�   rN  rR  rP  rQ  rÄ   r¦   r   rÅ   rm   rÆ   r®   rO  r¤   ra   rÇ   rª   rS  )r1   rÀ   rž   r«   rƒ   rÈ   ÚqueriesÚkeysr0   rÌ   r­   r¬   s   &&&,        r#   rˆ   ÚAltCLIPAttention.forward£  sR  € ð $×)Ñ)¨#¨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ØØØØØñ	%
ð —J‘Jð	%
ð  $Ÿ}Ÿ}˜}‘C°$·,±,ð	%
ð ñ	%
Ñ!ˆð "×)Ò)Ð;¨;Ð;¸Ó;×FÑFÓHˆØ—m‘m KÓ0ˆàÐ(Ð(r&   )rm   ra   rL  rN  r¼   rP  rM  rS  rR  rO  rQ  r)   r6  r˜   s   @@r#   rG  rG  ‘  s#   ù‡ € ÙG÷Bó B÷%)÷ %)ò %)r&   rG  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# )Ú
AltCLIPMLPiË  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)   )rS   rT   rm   r   rô   Úactivation_fnrU   r¹   rX   ró   Úfc1Úfc2rl   s   &&€r#   rT   ÚAltCLIPMLP.__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Ø   )r!   r"   s   "€r#   r$   ÚAltCLIPMLP.__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_  rý   s   &&r#   rˆ   ÚAltCLIPMLP.forwardÓ  s4   € ØŸ™ Ó/ˆØ×*Ñ*¨=Ó9ˆØŸ™ Ó/ˆØÐr&   )r]  rm   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# )ÚAltCLIPEncoderLayeriÚ  c                ó    <€ V ^8„  d   QhRS[ /# r  ©r   )r!   r"   s   "€r#   r$   Ú AltCLIPEncoderLayer.__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# rÒ   )rS   rT   rX   rL  rG  Ú	self_attnrU   r]   r^   Úlayer_norm1r[  ÚmlpÚlayer_norm2rl   s   &&€r#   rT   ÚAltCLIPEncoderLayer.__init__Û  sm   ø€ Ü‰ÑÔØ×+Ñ+ˆŒÜ)¨&Ó1ˆŒÜŸ<š<¨¯©¸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«   r   )r;   rv   r   r   r<   )r!   r"   s   "€r#   r$   ri  ã  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=   )rl  rk  rn  rm  rì   s   &&&,  r#   rˆ   ÚAltCLIPEncoderLayer.forwardã  s   € ð !ˆà×(Ñ(¨Ó7ˆØŸ>š>ñ 
Ø'ð
à)ð
ð ñ
Ñˆð
 !Õ0ˆà ˆØ×(Ñ(¨Ó7ˆØŸ™ Ó/ˆØ Õ0ˆàÐr&   )rL  rl  rn  rm  rk  rÎ   r˜   s   @@r#   rf  rf  Ú  s    ù‡ € ÷Só S÷÷ ð r&   rf  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	# )	ÚAltCLIPEncoderiû  zŸ
Transformer encoder consisting of `config.num_hidden_layers` self attention layers. Each layer is a
[`AltCLIPEncoderLayer`].

Args:
    config: AltCLIPConfig
c                ó    <€ V ^8„  d   QhRS[ /# r  ©r   )r!   r"   s   "€r#   r$   ÚAltCLIPEncoder.__annotate__  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 r   )
rS   rT   rm   rU   r!  r"  r#  rf  r$  r%  r&  s   && €r#   rT   ÚAltCLIPEncoder.__init__  sT   ø€ Ü‰ÑÔØŒÜ—m’mÌ%ÐPV×PhÑPhÔJiÓ$jÑJiÀQÔ%8¸Ö%@ÑJiÑ$jÓkˆŒØ&+ˆÖ#ùò %kr(  c                ó^   <€ V ^8„  d   QhRS[ P                  R,          RS[S[,          RS[/# r*  r+  )r!   r"   s   "€r#   r$   rw  
  r,  r&   c                óX   € TpV P                    F  pV! VV3/ VB pK  	  \        VR 7      # r.  r0  r1  s   &&&,  r#   rˆ   ÚAltCLIPEncoder.forward
  r4  r&   r5  r)   r6  r˜   s   @@r#   rt  rt  û  r7  r&   rt  c                   óf   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	V3R lR lltRtVtV ;t	# )
ÚAltCLIPVisionEmbeddingsi  c                ó    <€ V ^8„  d   QhRS[ /# r  rh  )r!   r"   s   "€r#   r$   Ú$AltCLIPVisionEmbeddings.__annotate__  s   ø€ ÷ jñ jÑ2ñ j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        \        P&                  ! \        P(                  ! V P                   4      P+                  R4      R R7      V n        R# )F)Úin_channelsÚout_channelsÚkernel_sizeÚstrideÚbiasrL   NrP   )rS   rT   rm   rX   rL  Ú
image_sizeÚ
patch_sizerU   Ú	Parameterr;   ÚrandnÚclass_embeddingÚConv2dÚnum_channelsÚpatch_embeddingÚnum_patchesÚnum_positionsrV   Úposition_embeddingrb   rc   re   rf   rl   s   &&€r#   rT   Ú AltCLIPVisionEmbeddings.__init__  s  ø€ Ü‰ÑÔØŒØ×+Ñ+ˆŒØ ×+Ñ+ˆŒØ ×+Ñ+ˆŒä!Ÿ|š|¬E¯KªK¸¿¹Ó,GÓHˆÔä!ŸyšyØ×+Ñ+ØŸ™ØŸ™Ø—?‘?Øô 
ˆÔð !ŸO™O¨t¯©Õ>À1ÕDˆÔØ!×-Ñ-°Õ1ˆÔÜ"$§,¢,¨t×/AÑ/AÀ4Ç>Á>Ó"RˆÔÜŸIšI¤e§l¢l°4×3EÑ3EÓ&F×&MÑ&MÈgÓ&VÐchÔiˆÖr&   c                óZ   <€ V ^8„  d   QhRS[ P                  RS[RS[RS[ P                  /# )r   r‡   ÚheightÚwidthr   )r;   rv   ru   )r!   r"   s   "€r#   r$   r€  4  s;   ø€ ÷ 'Dñ 'D±5·<±<ð 'DÉð 'DÑUXð 'DÑ]b×]iÑ]iñ 'Dr&   c                ó  € VP                   ^,          ^,
          pV P                  P                  P                  ^ 4      pVP                   ^,          ^,
          p\        P
                  P                  4       '       g(   WF8X  d"   W#8X  d   V P                  V P                  4      # VR,          pVR,          pVP                   R,          p	W P                  ,          p
W0P                  ,          p\        VR,          4      pVP                  ^WÌV	4      pVP                  ^ ^^^4      p\        P                  P                  VW«3RRR7      pVP                  ^ ^^^4      P                  ^RV	4      p\        P                   ! Wx3^R7      # )	aÐ  
This method allows to interpolate the pre-trained position encodings, to be able to use the model on higher resolution
images. This method is also adapted to support torch.jit tracing.

Adapted from:
- https://github.com/facebookresearch/dino/blob/de9ee3df6cf39fac952ab558447af1fa1365362a/vision_transformer.py#L174-L194, and
- https://github.com/facebookresearch/dinov2/blob/e1277af2ba9496fbadf7aec6eba56e8d882d1e35/dinov2/models/vision_transformer.py#L179-L211
rK  ÚbicubicF)rh   ÚmodeÚalign_cornersr�   )rA  :NrQ   N)rA  :rQ   NNrR   )r�   r‘  Úweightr‹   r;   ÚjitÚ
is_tracingrf   rˆ  r   rÇ   ÚpermuterU   r§   ÚinterpolaterÄ   Úcat)r1   r‡   r”  r•  r�  r‘  r�  Úclass_pos_embedÚpatch_pos_embedry   Ú
new_heightÚ	new_widthÚsqrt_num_positionss   &&&&         r#   Úinterpolate_pos_encodingÚ0AltCLIPVisionEmbeddings.interpolate_pos_encoding4  s[  € ð !×&Ñ& qÕ)¨AÕ-ˆØ!×4Ñ4×;Ñ;×EÑEÀaÓHÐØ*×0Ñ0°Õ3°aÕ7ˆô �y‰y×#Ñ#×%Ò%¨+Ô*FÈ6Ì?Ø×*Ñ*¨4×+<Ñ+<Ó=Ð=à,¨UÕ3ˆØ,¨UÕ3ˆà×Ñ˜rÕ"ˆàŸ™Õ.ˆ
ØŸ_™_Õ,ˆ	ä& }°cÕ'9Ó:ÐØ)×1Ñ1°!Ð5GÐ]`ÓaˆØ)×1Ñ1°!°Q¸¸1Ó=ˆäŸ-™-×3Ñ3ØØÐ(ØØð	 4ó 
ˆð *×1Ñ1°!°Q¸¸1Ó=×BÑBÀ1ÀbÈ#ÓNˆä�yŠy˜/Ð;ÀÔCÐCr&   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   Úpixel_valuesr   )r;   r<   rv   )r!   r"   s   "€r#   r$   r€  ]  s(   ø€ ÷ ñ ¡E×$5Ñ$5ð ÑZ_×ZfÑZfñ 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 (z).rN   r�   rR   )r�   r‡  r¶   rŽ  rš  rO   r€   Úflattenr¦   r‹  re   r;   rŸ  r¥  r‘  rf   )r1   r¨  r¥  r„   rî   r”  r•  Útarget_dtypeÚpatch_embedsÚclass_embedsr‡   s   &&&        r#   rˆ   ÚAltCLIPVisionEmbeddings.forward]  s$  € Ø'3×'9Ñ'9Ñ$ˆ
�vß'¨V·±Ô-FÈ%×SbÑSbÔJbÜØ$ V H¨A¨e¨WÐ4KÈDÏOÉOÐK\Ð\]Ð^b×^mÑ^mÐ]nÐnpÐqóð ð ×+Ñ+×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&   )
r‹  rm   rL  r‡  r�  r�  rŽ  rˆ  r‘  rf   ©F)
r>   r?   r@   rA   rT   r¥  rˆ   rD   rE   r—   r˜   s   @@r#   r~  r~    s-   ù‡ € ÷jó j÷,'Dð 'D÷R÷ ò r&   r~  c                   ó–   a a€ ] tR tRt oRtR	t. R
OtRtRtRt	Rt
RtR]R]/t]P                   ! 4       V 3R l4       tV3R ltRtVtV ;t# )ÚAltCLIPPreTrainedModelip  ÚaltclipTrÀ   Ú
attentionsc                ó<	  <€ \         SV `  V4       V P                  P                  p\	        V\
        4      '       Ed   \        P                  ! VP                  RVP                  R,          V,          R7       \        P                  ! VP                  P                  VP                  P                  V,          R7       \        P                  ! VP                  P                  VP                  P                  V,          R7       \        P                  ! VP                  \         P"                  ! VP$                  4      P'                  R4      4       R# \	        V\(        4      '       Ed   VP                  R,          ^VP                  P*                  ,          R,          ,          V,          pVP                  R,          V,          p\        P                  ! VP,                  P                  VR7       \        P                  ! VP.                  P                  VR7       \        P                  ! VP0                  P                  VR7       \        P                  ! VP2                  P                  VR7       R# \	        V\4        4      '       dÓ   VP                  P6                  R,          ^VP                  P*                  ,          R,          ,          V,          p^VP                  P6                  ,          R,          V,          p\        P                  ! VP8                  P                  VR7       \        P                  ! VP:                  P                  VR7       R# \	        V\<        4      '       d‹   \        P                  ! VP>                  P                  VP@                  R,          V,          R7       \        P                  ! VPB                  P                  VPD                  R,          V,          R7       R# \	        V\F        4      '       d‚   \        P                  ! VP                  \         P"                  ! VP                  PH                  R,          4      P'                  R4      4       \        PJ                  ! VPL                  4       R# R# )zInitialize the weightsrÃ   )ÚmeanÚstd)r·  Nr´   rR   rP   )'rS   Ú_init_weightsrm   Úinitializer_factorr*   r~  ÚinitÚnormal_r‹  rL  rŽ  rš  Úinitializer_ranger‘  Úcopy_rf   r;   rc   r�  re   rG  r#  rR  rP  rQ  rS  r[  rX   r^  r_  ÚAltCLIPModelÚtext_projectionÚtext_embed_dimÚvisual_projectionÚvision_embed_dimrG   r�   Úzeros_rj   )r1   rš   ÚfactorÚin_proj_stdÚout_proj_stdÚfc_stdrn   s   &&    €r#   r¸  Ú$AltCLIPPreTrainedModel._init_weights�  sé  ø€ ô 	‰Ñ˜fÔ%Ø—‘×/Ñ/ˆÜ�fÔ5×6Ó6Ü�LŠL˜×/Ñ/°c¸v×?OÑ?OÐQUÕ?UÐX^Õ?^Õ_Ü�LŠL˜×/Ñ/×6Ñ6¸F¿M¹M×<[Ñ<[Ð^dÕ<dÕeÜ�LŠL˜×2Ñ2×9Ñ9¸v¿}¹}×?^Ñ?^ÐagÕ?gÕhÜ�JŠJ�v×*Ñ*¬E¯LªL¸×9MÑ9MÓ,N×,UÑ,UÐV]Ó,^Ö_Ü˜Ô 0×1Ó1Ø!×+Ñ+¨TÕ1°q¸6¿=¹=×;ZÑ;ZÕ7ZÐ_cÕ6cÕdÐgmÕmˆKØ"×,Ñ,¨dÕ2°fÕ<ˆLÜ�LŠL˜Ÿ™×-Ñ-°;Õ?Ü�LŠL˜Ÿ™×-Ñ-°;Õ?Ü�LŠL˜Ÿ™×-Ñ-°;Õ?Ü�LŠL˜Ÿ™×/Ñ/°\×BÜ˜¤
×+Ò+Ø!Ÿ=™=×4Ñ4°dÕ:ÀÀFÇMÁM×DcÑDcÕ@cÐhlÕ?lÕmÐpvÕvˆKØ˜&Ÿ-™-×3Ñ3Õ3¸Õ<¸vÕEˆFÜ�LŠL˜Ÿ™×*Ñ*°Õ7Ü�LŠL˜Ÿ™×*Ñ*°×<Ü˜¤×-Ò-Ü�LŠLØ×&Ñ&×-Ñ-Ø×)Ñ)¨4Õ/°&Õ8õô �LŠLØ×(Ñ(×/Ñ/Ø×+Ñ+¨TÕ1°FÕ:÷ô ˜Ô 4×5Ò5Ü�JŠJ�v×*Ñ*¬E¯LªL¸×9LÑ9L×9RÑ9RÐSUÕ9VÓ,W×,^Ñ,^Ð_fÓ,gÔhÜ�KŠK˜×-Ñ-Ö.ñ 6r&   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r  rv  )r!   r"   s   "€r#   r$   Ú#AltCLIPPreTrainedModel.__annotate__p  ó   ø‡ ‚ áÑò r&   r=   )ÚimageÚtext)rG   r  rf  r~  )r>   r?   r@   rA   Úbase_model_prefixÚinput_modalitiesÚ_no_split_modulesÚsupports_gradient_checkpointingÚ_supports_sdpaÚ_supports_flash_attnÚ_supports_flex_attnÚ_supports_attention_backendrf  rG  Ú_can_record_outputsr;   Úno_gradr¸  rC   rD   rE   r—   r˜   s   @@r#   r²  r²  p  sk   ù‡ € ð "ÐØ(ÐÚuÐà&*Ð#Ø€NØÐØÐØ"&ÐàÐ,ØÐ&ðÐð
 ‡]‚]ƒ_ô /ó ð /÷% … r&   r²  zN
    The vision model from ALTCLIP without any head or projection on top.
    )Úcustom_introc                   ó˜   a a€ ] tR tRt oRtRtRtV3R lV 3R llt]]	! RR7      ]
RV3R lR	 ll4       4       4       tV3R
 ltRtVtV ;t# )ÚAltCLIPVisionModeli¥  r¨  rŽ  c                ó    <€ V ^8„  d   QhRS[ /# r  rh  )r!   r"   s   "€r#   r$   ÚAltCLIPVisionModel.__annotate__°  s   ø€ ÷ ñ Ñ2ñ r&   c                ó6  <€ \         SV `  V4       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        V P                  4        R# rÒ   )rS   rT   rX   r~  r‡   rU   r]   r^   Úpre_layrnormrt  ÚencoderÚpost_layernormÚ	post_init)r1   rm   rL  rn   s   && €r#   rT   ÚAltCLIPVisionModel.__init__°  sk   ø€ Ü‰Ñ˜Ô Ø×&Ñ&ˆ	ä1°&Ó9ˆŒÜŸLšL¨×8MÑ8MÔNˆÔÜ% fÓ-ˆŒÜ Ÿlšl¨9×:OÑ:OÔPˆÔØ�‰Ör&   F)Útie_last_hidden_statesc                ór   <€ V ^8„  d   QhRS[ P                  R,          RS[R,          RS[S[,          RS[/# )r   r¨  Nr¥  r«   r   )r;   r<   Úboolr   r   r   )r!   r"   s   "€r#   r$   rÜ  ½  sH   ø€ ÷ +
ñ +
á×'Ñ'¨$Õ.ð+
ñ #'¨¥+ð+
ñ Ñ+Õ,ð	+
ñ
 
$ñ+
r&   c                óÖ   € 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      # )a�  
Examples:

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

>>> model = AltCLIPVisionModel.from_pretrained("BAAI/AltCLIP")
>>> processor = AutoProcessor.from_pretrained("BAAI/AltCLIP")

>>> 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 CLS states
```)r¥  rr   ©r/  Úpooler_outputr=   ©rA  r   rA  )r‡   rÞ  rß  r/  rà  r   )r1   r¨  r¥  r«   rÀ   Úencoder_outputsr/  rD  s   &&&,    r#   rˆ   ÚAltCLIPVisionModel.forwardº  s}   € ð> Ÿ™¨˜ÓhˆØ×)Ñ)¨-Ó8ˆà+/¯<ª<ñ ,
Ø'ð,
àñ,
ˆð
 ,×=Ñ=ÐØ)¨'Õ2ˆØ×+Ñ+¨MÓ:ˆä)Ø/Ø'ô
ð 	
r&   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r  rh  )r!   r"   s   "€r#   r$   rÜ  ¥  s   ø‡ ‚ ñ  Ñò r&   )r‡   rß  rà  rÞ  )rÌ  )NF)r>   r?   r@   rA   Úmain_input_namerÏ  Ú_input_embed_layerrT   r   r   r   rˆ   rC   rD   rE   r—   r˜   s   @@r#   rÚ  rÚ  ¥  sW   ù‡ € ð %€OØ!ÐØ*Ð÷ó ð  Ù¨EÔ2Ø÷+
ñ +
ó ó 3ó  ð+
÷1 … r&   rÚ  aE  
    The model behaves as an encoder following the architecture described in *Attention is
    all you need*_ by Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz
    Kaiser and Illia Polosukhin.

    .. _*Attention is all you need*: https://huggingface.co/papers/1706.03762
    c                   óŠ   a a€ ] tR tRt oR
tRtR]R]/tRV 3R llt	]
]]RV3R lR ll4       4       4       tV3R ltR	tVtV ;t# )ÚAltRobertaModelië  rZ   rÀ   r´  c                óº   <€ \         SV `  V4       \        V4      V n        \	        V4      V n        V'       d   \        V4      MRV n        V P                  4        R# )z^
add_pooling_layer (bool, *optional*, defaults to `True`):
    Whether to add a pooling layer
N)	rS   rT   rG   r‡   r  rß  r9  Úpoolerrá  )r1   rm   Úadd_pooling_layerrn   s   &&&€r#   rT   ÚAltRobertaModel.__init__þ  sE   ø€ ô
 	‰Ñ˜Ô Ü.¨vÓ6ˆŒÜ(¨Ó0ˆŒß2CÔ& vÔ.ÈˆŒà�‰Ör&   c                ó  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[S[,          RS[S[,          /# ©	r   rq   Nrž   rj   rf   rr   r«   r   ©r;   rv   r   r   r    r   )r!   r"   s   "€r#   r$   ÚAltRobertaModel.__annotate__  sŠ   ø€ ÷ 3
ñ 3
á—<‘< $Õ&ð3
ñ Ÿ™ tÕ+ð3
ñ Ÿ™ tÕ+ð	3
ñ
 —l‘l TÕ)ð3
ñ —|‘| dÕ*ð3
ñ Ñ+Õ,ð3
ñ 
Ñ+Õ	+ñ3
r&   c                ó0  € VRJ VRJ,          '       d   \        R4      hV P                  VVVVR7      p\        V P                  VVR7      pV P                  ! V3RV/VB pV^ ,          pV P
                  e   V P                  V4      MRp	\        VV	R7      # )aû  
Examples:

```python
>>> from transformers import AutoTokenizer, AltRobertaModel

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

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

>>> outputs = model(**inputs)
>>> last_hidden_state = outputs.last_hidden_state
>>> pooled_output = outputs.pooler_output  # pooled (EOS token) states
```Nz:You must specify exactly one of input_ids or inputs_embeds)rq   rf   rj   rr   )rm   rr   rž   rž   rç  )r¶   r‡   r   rm   rß  rò  r   )
r1   rq   rž   rj   rf   rr   r«   rê  Úsequence_outputrD  s
   &&&&&&,   r#   rˆ   ÚAltRobertaModel.forward
  s»   € ð6 ˜Ð -°tÐ";×<Ô<ÜÐYÓZÐZàŸ™ØØ%Ø)Ø'ð	 (ó 
ˆô 3Ø—;‘;Ø'Ø)ô
ˆð Ÿ,š,Øñ
à)ð
ð ñ
ˆð
 *¨!Õ,ˆØ8<¿¹Ò8O˜Ÿ™ OÔ4ÐUYˆä)Ø-Ø'ô
ð 	
r&   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r  r  )r!   r"   s   "€r#   r$   rø  ë  s   ø‡ ‚ ñ Ñò r&   )r‡   rß  rò  ©rÍ  )T©NNNNN)r>   r?   r@   rA   rÏ  rî  r  r°   rÖ  rT   r   r   r   rˆ   rC   rD   rE   r—   r˜   s   @@r#   rð  rð  ë  s\   ù‡ € ð !Ðà*Ðà˜ØÐ-ðÐ÷

ð  ØØ÷3
ñ 3
ó ó ó  ð3
÷E … r&   rð  c                   ót   a a€ ] tR tRt oR	tRtRtV 3R lt]]	R
V3R lR ll4       4       t
V3R ltRtVtV ;t# )ÚAltCLIPTextModeliC  rZ   Úrobertac                ó,  <€ \         SV `  V4       \        VR R7      V n        \        P
                  ! VP                  VP                  4      V n        \        P                  ! VP                  VP                  R7      V n        V P                  4        R# )F)ró  rJ   N)rS   rT   rð  r  rU   r¹   rX   Úproject_dimÚtransformationr]   r^   Úpre_LNrá  rl   s   &&€r#   rT   ÚAltCLIPTextModel.__init__I  se   ø€ Ü‰Ñ˜Ô Ü& vÀÔGˆŒÜ Ÿiši¨×(:Ñ(:¸F×<NÑ<NÓOˆÔÜ—l’l 6×#5Ñ#5¸6×;PÑ;PÔQˆŒØ�‰Ör&   c                ó  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[S[,          RS[S[,          /# rö  )r;   rv   r   r   r    r   )r!   r"   s   "€r#   r$   ÚAltCLIPTextModel.__annotate__R  sŠ   ø€ ÷ 3
ñ 3
á—<‘< $Õ&ð3
ñ Ÿ™ tÕ+ð3
ñ Ÿ™ tÕ+ð	3
ñ
 —l‘l TÕ)ð3
ñ —|‘| dÕ*ð3
ñ Ñ+Õ,ð3
ñ 
Ñ8Õ	8ñ3
r&   c                óè   € V P                   ! RRVRVRVRVRV/VB pV^ ,          pV P                  V4      pV P                  V4      p	V	R,          p
\        V	V
VP                  VP
                  R7      # )	aÓ  
Examples:

```python
>>> from transformers import AutoProcessor, AltCLIPTextModel

>>> model = AltCLIPTextModel.from_pretrained("BAAI/AltCLIP")
>>> processor = AutoProcessor.from_pretrained("BAAI/AltCLIP")

>>> texts = ["it's a cat", "it's a dog"]

>>> inputs = processor(text=texts, padding=True, return_tensors="pt")

>>> outputs = model(**inputs)
>>> last_hidden_state = outputs.last_hidden_state
>>> pooled_output = outputs.pooler_output  # pooled CLS states
```rq   rž   rj   rf   rr   )r/  rè  rÀ   r´  r=   rB  )r  r  r  r   rÀ   r´  )r1   rq   rž   rj   rf   rr   r«   Úoutputsrú  Úprojection_staterè  s   &&&&&&,    r#   rˆ   ÚAltCLIPTextModel.forwardP  s§   € ð: —,’,ñ 
Øð
à)ð
ð *ð
ð &ð	
ð
 (ð
ð ñ
ˆð " !�*ˆð Ÿ+™+ oÓ6ˆð  ×.Ñ.¨Ó?ÐØ(¨Õ.ˆä6Ø.Ø'Ø!×/Ñ/Ø×)Ñ)ô	
ð 	
r&   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r  r  )r!   r"   s   "€r#   r$   r  C  s   ø‡ ‚ ÙÑò r&   )r  r  r  rý  rþ  )r>   r?   r@   rA   rÏ  rî  rÎ  rT   r   r   rˆ   rC   rD   rE   r—   r˜   s   @@r#   r   r   C  sD   ù‡ € à ÐØ*ÐØ!Ðõð Ø÷3
ñ 3
ó ó ð3
÷ … r&   r   c                óX   € V ^8„  d   QhR\         P                  R\         P                  /# )r   Úlogitsr   rØ   )r!   s   "r#   r$   r$   Š  s&   € ÷ `ñ `œUŸ\™\ð `¬e¯l©lñ `r&   c                 ó”   € \         P                  P                  V \        P                  ! \        V 4      V P                  R 7      4      # ))r|   )rU   r§   Úcross_entropyr;   rc   Úlenr|   )r  s   &r#   Úcontrastive_lossr  Š  s/   € Ü�=‰=×&Ñ& v¬u¯|ª|¼CÀ»KÐPV×P]ÑP]Ô/^Ó_Ð_r&   c                óX   € V ^8„  d   QhR\         P                  R\         P                  /# )r   Ú
similarityr   rØ   )r!   s   "r#   r$   r$   Ž  s"   € ÷ -ñ -¬E¯L©Lð -¼U¿\¹\ñ -r&   c                 ó`   € \        V 4      p\        V P                  4      pW,           R ,          # )g       @)r  ÚT)r  Úcaption_lossÚ
image_losss   &  r#   Úimage_text_contrastive_lossr  Ž  s(   € Ü# JÓ/€LÜ! *§,¡,Ó/€JØÕ%¨Õ,Ð,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)ry   ÚkeepdimrK  rR   )r;   ÚpowÚ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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	V3R
 lt
RtVtV ;t# )r¾  iŸ  c                ó    <€ V ^8„  d   QhRS[ /# r  rv  )r!   r"   s   "€r#   r$   ÚAltCLIPModel.__annotate__£  s   ø€ ÷ ñ ™}ñ r&   c                óâ  <€ \         SV `  V4       VP                  pVP                  pVP                  V n        VP
                  V n        VP                  V n        \        P                  V P                  P                  4      V n        \        P                  V P                  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        V P1                  4        R# )F)r†  N)rS   rT   Útext_configÚvision_configÚprojection_dimr  rÀ  rX   rÂ  r   Ú_from_configrm   Ú
text_modelrÚ  Úvision_modelrU   r¹   rÁ  r¿  r‰  r;   r  Úlogit_scale_init_valueÚlogit_scalerá  )r1   rm   r)  r*  rn   s   &&  €r#   rT   ÚAltCLIPModel.__init__£  sý   ø€ Ü‰Ñ˜Ô Ø×(Ñ(ˆØ×,Ñ,ˆà$×3Ñ3ˆÔØ)×5Ñ5ˆÔØ -× 9Ñ 9ˆÔÜ*×7Ñ7¸¿¹×8OÑ8OÓPˆŒÜ.×;Ñ;¸D¿K¹K×<UÑ<UÓVˆÔä!#§¢¨4×+@Ñ+@À$×BUÑBUÐ\aÔ!bˆÔÜ!Ÿyšy¨×)<Ñ)<¸d×>QÑ>QÐX]Ô^ˆÔÜŸ<š<¬¯ª°T·[±[×5WÑ5WÓ(XÓYˆÔð 	�‰Ör&   c                óØ   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[S[,          RS[S[,          /# )r   rq   rž   Nrj   rf   r«   r   r÷  )r!   r"   s   "€r#   r$   r'  ·  sr   ø€ ÷  ñ  á—<‘<ð ñ Ÿ™ tÕ+ð ñ Ÿ™ tÕ+ð	 ñ
 —l‘l TÕ)ð ñ Ñ+Õ,ð ñ 
Ñ+Õ	+ñ r&   c                óŒ   € V P                   ! RRVRVRVRV/VB pVP                  R,          pV P                  V4      Vn        V# )a   
Examples:

```python
>>> import torch
>>> from transformers import AutoProcessor, AltCLIPModel

>>> model = AltCLIPModel.from_pretrained("BAAI/AltCLIP")
>>> processor = AutoProcessor.from_pretrained("BAAI/AltCLIP")

>>> inputs = processor(text=["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)
```rq   rž   rj   rf   r=   ré  )r-  r/  r¿  rè  )r1   rq   rž   rj   rf   r«   Útext_outputsrD  s   &&&&&,  r#   Úget_text_featuresÚAltCLIPModel.get_text_featuresµ  sk   € ð0 48·?²?ñ 4
Øð4
à)ð4
ð *ð4
ð &ð	4
ð
 ñ4
ˆð %×6Ñ6°wÕ?ˆØ%)×%9Ñ%9¸-Ó%HˆÔ"àÐr&   c          	      óf   <€ V ^8„  d   QhRS[ P                  RS[RS[S[,          RS[S[,          /# )r   r¨  r¥  r«   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, AltCLIPModel
>>> from transformers.image_utils import load_image

>>> model = AltCLIPModel.from_pretrained("BAAI/AltCLIP")
>>> processor = AutoProcessor.from_pretrained("BAAI/AltCLIP")

>>> 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¥  Úreturn_dictTr=   )r.  rè  rÁ  )r1   r¨  r¥  r«   Úvision_outputsrD  s   &&&,  r#   Úget_image_featuresÚAltCLIPModel.get_image_featuresÙ  s^   € ð4 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[ P                  R,          RS[ P                  R,          RS[R,          RS[R	S[S[,          R
S[S[,          /	# )r   rq   Nr¨  rž   rj   rf   Úreturn_lossr¥  r«   r   )	r;   rt   r<   rv   rå  r   r   r    r   )r!   r"   s   "€r#   r$   r'     s²   ø€ ÷ L
ñ L
á×#Ñ# dÕ*ðL
ñ ×'Ñ'¨$Õ.ðL
ñ Ÿ™ tÕ+ð	L
ñ
 Ÿ™ tÕ+ðL
ñ ×&Ñ&¨Õ-ðL
ñ ˜D•[ðL
ñ #'ðL
ñ Ñ+Õ,ðL
ñ 
‘Õ	ñL
r&   c                ól  € V P                   ! R	RVRV/VB p	V P                  ! R	RVRVRVRV/VB p
V	^,          pV P                  V4      pV
^,          pV P                  V4      pV\	        V4      ,          pV\	        V4      ,          p\
        P                  ! WËP                  4       P                  VP                  4      4      pWÐP                  P                  4       P                  VP                  4      ,          pVP                  4       pRpV'       d   \        V4      p\        VVVVVV
V	R7      # )
u�  
return_loss (`bool`, *optional*):
    Whether or not to return the contrastive loss.

Examples:

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

>>> model = AltCLIPModel.from_pretrained("OFA-Sys/chinese-clip-vit-base-patch16")
>>> processor = AutoProcessor.from_pretrained("OFA-Sys/chinese-clip-vit-base-patch16")

>>> url = "https://clip-cn-beijing.oss-cn-beijing.aliyuncs.com/pokemon.jpeg"
>>> image = load_image(url)

>>> inputs = processor(text=["æ�°å°¼é¾Ÿ", "å¦™è›™ç§�å­�", "å°�ç�«é¾™", "çš®å�¡ä¸˜"], images=image, return_tensors="pt", padding=True)

>>> with torch.inference_mode():
...     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¥  rq   rž   rj   rf   N)r4   r5   r6   r7   r8   r9   r:   r=   )r.  r-  rÁ  r¿  r$  r;   r¥   Útr€   r|   r0  Úexpr  r   )r1   rq   r¨  rž   rj   rf   r>  r¥  r«   r:  r4  r8   r7   r6   r5   r4   s   &&&&&&&&,       r#   rˆ   ÚAltCLIPModel.forwardþ  sW  € ðJ ×*Ò*ñ 
Ø%ð
à%=ð
ð ñ
ˆð —’ñ 
Øð
à)ð
ð *ð
ð &ð	
ð
 ñ
ˆð & aÕ(ˆØ×-Ñ-¨lÓ;ˆà" 1•oˆØ×*Ñ*¨;Ó7ˆð $Ô&6°|Ó&DÕDˆØ!Ô$4°[Ó$AÕAˆô  Ÿ,š, {·N±NÓ4D×4GÑ4GÈ×HZÑHZÓ4[Ó\ˆØ)×,<Ñ,<×,@Ñ,@Ó,B×,EÑ,EÀk×FXÑFXÓ,YÕYˆØ*×,Ñ,Ó.ÐàˆßÜ.¨Ó?ˆDäØØ-Ø+Ø#Ø%Ø*Ø .ô
ð 	
r&   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r  rv  )r!   r"   s   "€r#   r$   r'  Ÿ  rË  r&   )r0  r+  rÀ  r-  r¿  rÂ  r.  rÁ  )NNNr°  )NNNNNNF)r>   r?   r@   rA   rT   r   r   r5  r;  rˆ   rC   rD   rE   r—   r˜   s   @@r#   r¾  r¾  Ÿ  s   ù‡ € ÷ó ð$ Ø÷ ñ  ó ó ð ðD Ø÷!ñ !ó ó ð!ðF Ø÷L
ñ L
ó ó ðL
÷C … r&   r¾  )rÃ   )r²  rÚ  r   r¾  )EÚcollections.abcr   Údataclassesr   Útypingr   r;   Útorch.nnrU   Ú r   rº  Úactivationsr   Úmasking_utilsr   Úmodeling_layersr	   Úmodeling_outputsr
   r   r   Úmodeling_utilsr   r   Úprocessing_utilsr   Úpytorch_utilsr   Úutilsr   r   r   r   r   Úutils.genericr   Úutils.output_capturingr   Úconfiguration_altclipr   r   r   r   r    rG   r®   r°   rÐ   rã   rñ   r   r  r  r9  rG  r[  rf  rt  r~  r²  rÚ  rð  r   r  r  r$  r¾  Ú__all__r=   r&   r#   Ú<module>rU     s
  ðõ( %Ý !Ý ã Ý å &Ý !Ý 6Ý 9ß tÑ tß FÝ &Ý 6ß aÕ aÝ 7Ý 5ß XÑ Xð Ø
ô_�Kó _ó ó ð_ô@c8˜2Ÿ9™9ô c8÷L%ô,4)˜bŸi™iô 4)ôn˜2Ÿ9™9ô ô˜"Ÿ)™)ô ô,˜RŸY™Yô ô�r—y‘yô ôÐ0ô ôB
˜Ÿ	™	ô 
ôD�r—y‘yô ô7)�r—y‘yô 7)ôt�—‘ô ôÐ4ô ôB
�R—Y‘Yô 
ôDP˜bŸi™iô Pðf ô1/˜_ó 1/ó ð1/ñh ðôô
>
Ð/ó >
óð
>
ñB ðôôL
Ð,ó L
óðL
ô^B
Ð-ô B
õN`õ-õð ôl
Ð)ó l
ó ðl
ò^ _‚r&   