+
    œ°³j/â  ã                   ó˜  € R t ^ RI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Ht ^RIHt ^RIHtHt ^R	IHt ^R
IHtHtHtHtHt ^RIHtHt ^RIH t  ^RI!H"t"H#t#H$t$H%t%H&t& ^RI'H(t(H)t)H*t* ]&PV                  ! ],4      t- ! R R]P\                  4      t/ ! R R]P\                  4      t0 ! R R]P\                  4      t1 ! R R]P\                  4      t2 ! R R]4      t3 ! R R]P\                  4      t4]% ! R R]4      4       t5]% ! R R]54      4       t6 ! R R ]P\                  4      t7 ! R! R"]P\                  4      t8R4R# R$ llt9 ! R% R&]P\                  4      t: ! R' R(]P\                  4      t; ! R) R*]P\                  4      t< ! R+ R,]4      t=]%! R-R.7       ! R/ R0]54      4       t>]%! R1R.7       ! R2 R3]5]4      4       t?. R5Ot@R# )6zPix2Struct modeling fileN)ÚCallable)Únn)Úinitialization)ÚACT2FN)ÚCacheÚDynamicCacheÚEncoderDecoderCache)ÚGenerationMixin)Úcreate_bidirectional_maskÚcreate_causal_mask)ÚGradientCheckpointingLayer)ÚBaseModelOutputÚBaseModelOutputWithPoolingÚ!CausalLMOutputWithCrossAttentionsÚSeq2SeqLMOutputÚSeq2SeqModelOutput)ÚALL_ATTENTION_FUNCTIONSÚPreTrainedModel)ÚUnpack)ÚDUMMY_INPUTSÚ
DUMMY_MASKÚTransformersKwargsÚauto_docstringÚlogging)ÚPix2StructConfigÚPix2StructTextConfigÚPix2StructVisionConfigc                   ó<   a a€ ] tR t^5t oRV 3R lltR tRtVtV ;t# )ÚPix2StructLayerNormc                óŽ   <€ \         SV `  4        \        P                  ! \        P
                  ! V4      4      V n        W n        R# )zS
Construct a layernorm module in the T5 style. No bias and no subtraction of mean.
N)ÚsuperÚ__init__r   Ú	ParameterÚtorchÚonesÚweightÚvariance_epsilon)ÚselfÚhidden_sizeÚepsÚ	__class__s   &&&€Ús/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/pix2struct/modeling_pix2struct.pyr!   ÚPix2StructLayerNorm.__init__6   s/   ø€ ô 	‰ÑÔÜ—l’l¤5§:¢:¨kÓ#:Ó;ˆŒØ #Öó    c                ó¼  € VP                  \        P                  4      P                  ^4      P	                  RRR7      pV\        P
                  ! W P                  ,           4      ,          pV P                  P                  \        P                  \        P                  39   d&   VP                  V P                  P                  4      pV P                  V,          # )é   T)Úkeepdiméÿÿÿÿ)Útor#   Úfloat32ÚpowÚmeanÚrsqrtr&   r%   ÚdtypeÚfloat16Úbfloat16)r'   Úhidden_statesÚvariances   && r+   ÚforwardÚPix2StructLayerNorm.forward>   s™   € ð !×#Ñ#¤E§M¡MÓ2×6Ñ6°qÓ9×>Ñ>¸rÈ4Ð>ÓPˆØ%¬¯ª°H×?TÑ?TÕ4TÓ(UÕUˆð �;‰;×Ñ¤§¡´·±Ð ?Ô?Ø)×,Ñ,¨T¯[©[×->Ñ->Ó?ˆMà�{‰{˜]Õ*Ð*r-   )r&   r%   )g�íµ ÷Æ°>©	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r!   r<   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r*   Ú__classdict__s   @@r+   r   r   5   s   ù‡ € ÷$÷+ò +r-   r   c                   óT   a a€ ] tR t^Nt oRtV3R lV 3R lltV3R lR ltRtVtV ;t	# )ÚPix2StructVisionEmbeddingsa  
Construct the embeddings from patch. In `Pix2Struct` the input is different from classic Vision-transformer models.
Here the input is a sequence of `seq_len` flattened patches that also combines padding patches (tokens). Each patch
is represented by a vector of `hidden_size` values.
c                ó$   <€ V ^8„  d   QhRS[ RR/# ©r/   ÚconfigÚreturnN©r   )ÚformatrG   s   "€r+   Ú__annotate__Ú'Pix2StructVisionEmbeddings.__annotate__U   s   ø€ ÷ 7ñ 7Ñ/ð 7°Dñ 7r-   c                óŽ  <€ \         SV `  4        \        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        R # ©N)r    r!   r   ÚLinearÚpatch_embed_hidden_sizer(   Úpatch_projectionÚ	EmbeddingÚseq_lenÚrow_embedderÚcolumn_embedderÚDropoutÚdropout_rateÚdropout©r'   rL   r*   s   &&€r+   r!   Ú#Pix2StructVisionEmbeddings.__init__U   s}   ø€ Ü‰ÑÔÜ "§	¢	¨&×*HÑ*HÈ&×J\ÑJ\Ó ]ˆÔäŸLšL¨¯©¸×9KÑ9KÓLˆÔÜ!Ÿ|š|¨F¯N©N¸F×<NÑ<NÓOˆÔä—z’z &×"5Ñ"5Ó6ˆŽr-   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r/   Úflattened_patchesrM   )r#   ÚTensor)rO   rG   s   "€r+   rP   rQ   ^   s#   ø€ ÷ ñ ©¯©ð ¹%¿,¹,ñ r-   c                ó  € VR,          P                  4       pVR,          P                  4       pVR,          pV P                  V4      pV P                  V4      pV P                  V4      pWE,           V,           pV P	                  V4      pV# )ºNNN)rd   rd   é    )rd   rd   é   )rd   rd   :r/   NN)ÚlongrV   rY   rZ   r]   )r'   ra   Úrow_indicesÚcol_indicesÚ
embeddingsÚrow_embeddingsÚcol_embeddingss   &&     r+   r<   Ú"Pix2StructVisionEmbeddings.forward^   s‰   € ð (¨Õ0×5Ñ5Ó7ˆØ'¨Õ0×5Ñ5Ó7ˆà-¨hÕ7Ðà×*Ñ*Ð+<Ó=ˆ
Ø×*Ñ*¨;Ó7ˆØ×-Ñ-¨kÓ:ˆð  Õ0°>ÕAˆ
à—\‘\ *Ó-ˆ
àÐr-   )rZ   r]   rV   rY   )
r?   r@   rA   rB   Ú__doc__r!   r<   rC   rD   rE   rF   s   @@r+   rI   rI   N   s#   ù‡ € ñ÷7ó 7÷÷ ð r-   rI   c                   óH   a a€ ] tR t^rt oV 3R ltRV3R lR lltRtVtV ;t# )ÚPix2StructVisionAttentionc                ó¶  <€ \         SV `  4        Wn        VP                  V n        VP                  V n        VP                  V n        VP                  V n	        V P                  V P
                  ,          V n
        R V n        RV n        \        P                  ! V P                  V P                  RR7      V n        \        P                  ! V P                  V P                  RR7      V n        \        P                  ! V P                  V P                  RR7      V n        \        P                  ! V P                  V P                  RR7      V n        RV n        R# )ç      ð?F©ÚbiasN)r    r!   rL   r(   Úd_kvÚkey_value_proj_dimÚnum_attention_headsÚn_headsÚattention_dropoutr]   Ú	inner_dimÚscalingÚ	is_causalr   rT   ÚqueryÚkeyÚvalueÚoutputÚgradient_checkpointingr^   s   &&€r+   r!   Ú"Pix2StructVisionAttention.__init__s   së   ø€ Ü‰ÑÔØŒØ!×-Ñ-ˆÔØ"(§+¡+ˆÔØ×1Ñ1ˆŒØ×/Ñ/ˆŒØŸ™¨×(?Ñ(?Õ?ˆŒàˆŒØˆŒä—Y’Y˜t×/Ñ/°·±ÀeÔLˆŒ
Ü—9’9˜T×-Ñ-¨t¯~©~ÀEÔJˆŒÜ—Y’Y˜t×/Ñ/°·±ÀeÔLˆŒ
Ü—i’i §¡°×0@Ñ0@ÀuÔMˆŒà&+ˆÖ#r-   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# ©r/   Úkwargs©r   r   )rO   rG   s   "€r+   rP   Ú&Pix2StructVisionAttention.__annotate__†   s   ø€ ÷ %)ñ %)ñ Ñ+Õ,ñ	%)r-   c                ó¦  € VP                   R,          w  rEWERV P                  3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                  WER4      P!                  4       pV P#                  V4      pW¼3# )z
Self-attention block
:Nr/   Nr]   ç        r{   r1   )Úshaperv   r}   ÚviewÚ	transposer~   r   r   Úget_interfacerL   Ú_attn_implementationÚeager_attention_forwardÚtrainingr]   r{   ÚreshapeÚ
contiguousr€   )r'   r:   Úattention_maskr…   Ú
batch_sizeÚ
seq_lengthÚhidden_shapeÚquery_statesÚ
key_statesÚvalue_statesÚattention_interfaceÚattn_outputÚattn_weightss   &&&,         r+   r<   Ú!Pix2StructVisionAttention.forward†   sB  € ð "/×!4Ñ!4°RÕ!8Ñˆ
Ø"°°D×4KÑ4KÐLˆð —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°$·,±,ð	%
ð —L‘Lð	%
ð ñ	%
Ñ!ˆð "×)Ñ)¨*À"ÓE×PÑPÓRˆØ—k‘k +Ó.ˆàÐ(Ð(r-   )rL   r]   r�   r(   rz   r|   r~   rv   rx   r€   r}   r{   r   rS   r>   rF   s   @@r+   rp   rp   r   s   ù‡ € õ,÷&%)÷ %)ò %)r-   rp   c                   óD   a a€ ] tR t^¯t oV3R lV 3R lltR tRtVtV ;t# )ÚPix2StructVisionMlpc                ó    <€ V ^8„  d   QhRS[ /# ©r/   rL   ©r   )rO   rG   s   "€r+   rP   Ú Pix2StructVisionMlp.__annotate__°   s   ø€ ÷ /ñ /Ñ5ñ /r-   c                óÒ  <€ \         SV `  4        \        P                  ! VP                  VP
                  R R7      V n        \        P                  ! VP                  VP
                  R R7      V n        \        P                  ! VP
                  VP                  R R7      V n        \        P                  ! VP                  4      V n        \        VP                  ,          V n        R# ©Frs   N©r    r!   r   rT   r(   Úd_ffÚwi_0Úwi_1Úwor[   r\   r]   r   Údense_act_fnÚactr^   s   &&€r+   r!   ÚPix2StructVisionMlp.__init__°   ó�   ø€ Ü‰ÑÔÜ—I’I˜f×0Ñ0°&·+±+ÀEÔJˆŒ	Ü—I’I˜f×0Ñ0°&·+±+ÀEÔJˆŒ	Ü—)’)˜FŸK™K¨×);Ñ);À%ÔHˆŒÜ—z’z &×"5Ñ"5Ó6ˆŒÜ˜&×-Ñ-Õ.ˆŽr-   c                óF  € V P                  V P                  V4      4      pV P                  V4      pW#,          pV P                  V4      p\	        V P
                  P                  \        P                  4      '       d’   VP                  V P
                  P                  P                  8w  dc   V P
                  P                  P                  \        P                  8w  d0   VP                  V P
                  P                  P                  4      pV P                  V4      pV# rS   ©r¬   r¨   r©   r]   Ú
isinstancerª   r%   r#   rb   r7   Úint8r2   ©r'   r:   Úhidden_geluÚhidden_linears   &&  r+   r<   ÚPix2StructVisionMlp.forward¸   óÀ   € Ø—h‘h˜tŸy™y¨Ó7Ó8ˆØŸ	™	 -Ó0ˆØ#Õ3ˆØŸ™ ]Ó3ˆô �t—w‘w—~‘~¤u§|¡|×4Ò4Ø×#Ñ# t§w¡w§~¡~×';Ñ';Ô;Ø—‘—‘×$Ñ$¬¯
©
Ô2à)×,Ñ,¨T¯W©W¯^©^×-AÑ-AÓBˆMàŸ™ Ó.ˆØÐr-   ©r¬   r]   r¨   r©   rª   r>   rF   s   @@r+   rŸ   rŸ   ¯   ó   ù‡ € ÷/ó /÷ò 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# )ÚPix2StructVisionLayerc                ó$   <€ V ^8„  d   QhRS[ RR/# rK   rN   )rO   rG   s   "€r+   rP   Ú"Pix2StructVisionLayer.__annotate__Í   s    ø€ ÷ kñ kÑ/ð k°Dñ kr-   c                ó,  <€ \         SV `  4        VP                  V n        ^V n        \	        V4      V n        \        V4      V n        \        VP                  VP                  R7      V n        \        VP                  VP                  R7      V n        R# )rf   ©r)   N)r    r!   Úchunk_size_feed_forwardÚseq_len_dimrp   Ú	attentionrŸ   Úmlpr   r(   Úlayer_norm_epsÚpre_mlp_layer_normÚpre_attention_layer_normr^   s   &&€r+   r!   ÚPix2StructVisionLayer.__init__Í   ss   ø€ Ü‰ÑÔØ'-×'EÑ'EˆÔ$ØˆÔÜ2°6Ó:ˆŒÜ& vÓ.ˆŒÜ"5°f×6HÑ6HÈf×NcÑNcÔ"dˆÔÜ(;¸F×<NÑ<NÐTZ×TiÑTiÔ(jˆÖ%r-   c          
      ó¶   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[S[,          RS[S[ P                  S[ P                  3,          /# )r/   r:   r“   Nr…   rM   )r#   rb   r   r   Útuple)rO   rG   s   "€r+   rP   r½   Ö   sX   ø€ ÷ *ñ *á—|‘|ð*ñ Ÿ™ tÕ+ð*ñ Ñ+Õ,ð	*ñ
 
‰u�|‰|™UŸ\™\Ð)Õ	*ñ*r-   c                ó¾   € TpV P                  V4      pV P                  ! V3R V/VB w  rVWT,           pV P                  V4      pV P                  V4      V,           pWv3# )r“   )rÆ   rÂ   rÅ   rÃ   )r'   r:   r“   r…   ÚresidualÚattention_outputrœ   Úlayer_outputs   &&&,    r+   r<   ÚPix2StructVisionLayer.forwardÖ   sz   € ð !ˆð ×5Ñ5°mÓDˆà)-¯ªØñ*
à)ð*
ð ñ*
Ñ&Ðð )Õ3ˆð ×.Ñ.¨}Ó=ˆØ—x‘x Ó-°Õ=ˆàÐ)Ð)r-   )rÂ   rÀ   rÃ   rÆ   rÅ   rÁ   rS   r>   rF   s   @@r+   r»   r»   Ì   s    ù‡ € ÷kó k÷*÷ *ò *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# )ÚPix2StructVisionEncoderc                ó$   <€ V ^8„  d   QhRS[ RR/# rK   r¢   )rO   rG   s   "€r+   rP   Ú$Pix2StructVisionEncoder.__annotate__ò   s   ø€ ÷ ,ñ ,Ñ5ð ,¸$ñ ,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!   rL   r   Ú
ModuleListÚrangeÚnum_hidden_layersr»   Úlayerr�   )r'   rL   Ú_r*   s   && €r+   r!   Ú Pix2StructVisionEncoder.__init__ò   sT   ø€ Ü‰ÑÔØŒÜ—]’]Ì5ÐQW×QiÑQiÔKjÓ#kÑKjÀaÔ$9¸&Ö$AÑKjÑ#kÓlˆŒ
Ø&+ˆÖ#ùò $ls   ½A&c                ó„   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[RS[RS[S[,          RS[/# )r/   r:   r“   NÚoutput_attentionsÚoutput_hidden_statesr…   rM   )r#   rb   Úboolr   r   r   )rO   rG   s   "€r+   rP   rÒ   ø   sZ   ø€ ÷ 
ñ 
á—|‘|ð
ñ Ÿ™ tÕ+ð
ñ  ð	
ñ
 #ð
ñ Ñ+Õ,ð
ñ 
ñ
r-   c                óô   € V'       d   RMR pV'       d   RMR pV P                    F2  pV'       d
   Wa3,           pV! W3/ VB w  rV'       g   K)  Wy3,           pK4  	  V'       d
   Wa3,           p\        VVVR7      # )N©Úlast_hidden_stater:   Ú
attentions© )rØ   r   )
r'   r:   r“   rÜ   rÝ   r…   Úall_hidden_statesÚall_self_attentionsÚlayer_modulerœ   s
   &&&&&,    r+   r<   ÚPix2StructVisionEncoder.forwardø   s€   € ÷ #7™B¸DÐß$5™b¸4Ðà ŸJœJˆLß#Ø$5Ð8HÕ$HÐ!á*6°}Ñ*_ÐX^Ñ*_Ñ'ˆMç Ñ Ø&9¸OÕ&KÒ#ñ '÷  Ø 1Ð4DÕ DÐäØ+Ø+Ø*ô
ð 	
r-   )rL   r�   rØ   )NFFr>   rF   s   @@r+   rÐ   rÐ   ñ   s   ù‡ € ÷,ó ,÷
÷ 
ò 
r-   rÐ   c                   ó�   a a€ ] tR tRt oR	tRtRtRtRt]	R 4       t
]P                  ! 4       V 3R l4       tR tV3R ltRtVtV ;t# )
ÚPix2StructPreTrainedModeli  FTc                ó~   € \         P                  ! \        4      p\         P                  ! \        4      pR VRVRV/pV# )Údecoder_input_idsÚ	input_idsÚdecoder_attention_mask)r#   Útensorr   r   )r'   rì   Ú
input_maskÚdummy_inputss   &   r+   rð   Ú&Pix2StructPreTrainedModel.dummy_inputs!  s<   € ä—L’L¤Ó.ˆ	Ü—\’\¤*Ó-ˆ
à Ø˜Ø$ jð
ˆð
 Ðr-   c                óD  <€ \         SV `  V4       V P                  P                  p\	        V\
        4      '       d+   \        P                  ! VP                  VR,          4       R# \	        V\        4      '       Ed{   \	        V P                  \        4      '       d!   V P                  P                  P                  MV P                  P                  p\	        V P                  \        4      '       d!   V P                  P                  P                  MV P                  P                  p\        P                  ! VP                  P                  RW#R,          ,          R7       \!        VP                  R4      '       dC   VP                  P"                  e+   \        P$                  ! VP                  P"                  4       \        P                  ! VP&                  P                  RW#R,          ,          R7       \!        VP&                  R4      '       dC   VP&                  P"                  e+   \        P$                  ! VP&                  P"                  4       \        P                  ! VP(                  P                  RW$R,          ,          R7       \!        VP(                  R4      '       dG   VP(                  P"                  e-   \        P$                  ! VP(                  P"                  4       R# R# R# \	        V\*        4      '       EdI   \	        V P                  \        4      '       d!   V P                  P                  P                  MV P                  P                  p\	        V P                  \        4      '       d!   V P                  P                  P,                  MV P                  P,                  p\	        V P                  \        4      '       d!   V P                  P                  P.                  MV P                  P.                  p\        P                  ! VP0                  P                  RW#V,          R,          ,          R7       \        P                  ! VP2                  P                  RW#R,          ,          R7       \        P                  ! VP4                  P                  RW#R,          ,          R7       \        P                  ! VP6                  P                  RW&V,          R,          ,          R7       VP8                  '       d=   \        P                  ! VP:                  P                  RW#R,          ,          R7       R# R# \	        V\<        P>                  4      '       dé   \	        V P                  \        4      '       d!   V P                  P                  P                  MV P                  P                  p\        P                  ! VP                  RW#R,          ,          R7       VP@                  eS   \C        VP                  RR4      '       g4   \        P$                  ! VP                  VP@                  ,          4       R# R# R# \	        V\D        4      '       d“   \	        V P                  \        4      '       d!   V P                  P                  P                  MV P                  P                  p\        P                  ! VPF                  P                  RW#R,          ,          R7       R# \	        V\<        PH                  \<        PJ                  34      '       dj   \        PL                  ! VP                  RV P                  PN                  R7       VP"                  e#   \        P$                  ! VP"                  4       R# R# R# )	zInitialize the weightsrr   r‰   )r5   Ústdrt   NÚ_is_hf_initializedFç      à¿)(r    Ú_init_weightsrL   Úinitializer_factorr±   r   ÚinitÚ	constant_r%   Ú Pix2StructTextDenseGatedActDenser   Útext_configr(   r§   Únormal_r¨   Úhasattrrt   Úzeros_r©   rª   ÚPix2StructTextAttentionru   Ú	num_headsr}   r~   r   r€   Úhas_relative_attention_biasÚrelative_attention_biasr   rW   Úpadding_idxÚgetattrÚPix2StructTextModelÚlm_headrT   ÚConv2dÚtrunc_normal_Úinitializer_range)r'   ÚmoduleÚfactorr(   r§   rv   rx   r*   s   &&     €r+   rö   Ú'Pix2StructPreTrainedModel._init_weights,  sÝ  ø€ ô 	‰Ñ˜fÔ%Ø—‘×/Ñ/ˆÜ�fÔ1×2Ò2Ü�NŠN˜6Ÿ=™=¨&°3­,Ö7Ü˜Ô @×AÓAô ˜dŸk™kÔ+;×<Ò<ð —‘×'Ñ'×3Ò3à—[‘[×,Ñ,ð ô
 4>¸d¿k¹kÔK[×3\Ò3\�4—;‘;×*Ñ*×/Ò/Ðbf×bmÑbm×brÑbrˆDä�LŠL˜Ÿ™×+Ñ+°#¸6ÐVZÕEZÕ;[Õ\Ü�v—{‘{ F×+Ò+°·±×0@Ñ0@Ò0LÜ—’˜FŸK™K×,Ñ,Ô-Ü�LŠL˜Ÿ™×+Ñ+°#¸6ÐVZÕEZÕ;[Õ\Ü�v—{‘{ F×+Ò+°·±×0@Ñ0@Ò0LÜ—’˜FŸK™K×,Ñ,Ô-Ü�LŠL˜Ÿ™×)Ñ)°¸ÈTÅ>Õ9RÕSÜ�v—y‘y &×)Ò)¨f¯i©i¯n©nÒ.HÜ—’˜FŸI™IŸN™NÖ+ñ /IÑ)ä˜Ô 7×8Ó8ô ˜dŸk™kÔ+;×<Ò<ð —‘×'Ñ'×3Ò3à—[‘[×,Ñ,ð ô 1;¸4¿;¹;ÔHX×0YÒ0Y�—‘×'Ñ'×,Ò,Ð_c×_jÑ_j×_oÑ_oð ô
 ˜dŸk™kÔ+;×<Ò<ð —‘×'Ñ'×1Ò1à—[‘[×*Ñ*ð ô �LŠL˜Ÿ™×,Ñ,°3¸FÐUgÕGgÐlpÕFpÕ<qÕrÜ�LŠL˜Ÿ™×*Ñ*°¸&ÐQUÕDUÕ:VÕWÜ�LŠL˜Ÿ™×,Ñ,°3¸FÐSWÕFWÕ<XÕYÜ�LŠL˜Ÿ™×-Ñ-°C¸VÐRdÕHdÐimÕGmÕ=nÕoØ×1×1Ð1Ü—’˜V×;Ñ;×BÑBÈÐRXÐmqÕ\qÕRr×sñ 2ä˜¤§¡×-Ò-ô ˜dŸk™kÔ+;×<Ò<ð —‘×'Ñ'×3Ò3à—[‘[×,Ñ,ð ô �LŠL˜Ÿ™¨S°fÐQUÕ@UÕ6VÕWà×!Ñ!Ò-´g¸f¿m¹mÐMaÐch×6iÒ6iÜ—’˜FŸM™M¨&×*<Ñ*<Õ=Ö>ñ 7jÑ-ä˜Ô 3×4Ò4ô ˜dŸk™kÔ+;×<Ò<ð —‘×'Ñ'×3Ò3à—[‘[×,Ñ,ð ô �LŠL˜Ÿ™×.Ñ.°S¸fÐY]ÕH]Õ>^×_Ü˜¤§¡¬B¯I©IÐ 6×7Ò7Ü×Ò˜vŸ}™}°3¸D¿K¹K×<YÑ<YÕZØ�{‰{Ò&Ü—’˜FŸK™KÖ(ñ 'ñ 8r-   c                ó>  € V P                   P                  pV P                   P                  pVf   \        R4      hVP	                  VP
                  4      pVRR R13,          P                  4       VR&   W$R&   Vf   \        R4      hVP                  VR8H  V4       V# )Nzšself.model.config.decoder_start_token_id has to be defined. In Pix2Struct it is usually set to the pad_token_id. See Pix2Struct docs for more information..z1self.model.config.pad_token_id has to be defined.r1   ).ºrf   NN).re   éœÿÿÿ)rL   Údecoder_start_token_idÚpad_token_idÚ
ValueErrorÚ	new_zerosrŠ   ÚcloneÚmasked_fill_)r'   rì   r  r  Úshifted_input_idss   &&   r+   Ú_shift_rightÚ&Pix2StructPreTrainedModel._shift_rightr  s§   € Ø!%§¡×!CÑ!CÐØ—{‘{×/Ñ/ˆà!Ò)Üð<óð ð
 &×/Ñ/°	·±Ó@ÐØ%.¨s°C°R°C¨xÕ%8×%>Ñ%>Ó%@Ð˜'Ñ"Ø$:˜&Ñ!àÒÜÐPÓQÐQà×&Ñ&Ð'8¸DÑ'@À,ÔOà Ð r-   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r¡   rN   )rO   rG   s   "€r+   rP   Ú&Pix2StructPreTrainedModel.__annotate__  s   ø‡ ‚ áÑò r-   rã   )ÚimageÚtext)r?   r@   rA   rB   Úinput_modalitiesÚ_can_compile_fullgraphÚ_supports_flash_attnÚ_supports_flex_attnÚ_supports_sdpaÚpropertyrð   r#   Úno_gradrö   r  Ú__annotate_func__rC   rD   rE   rF   s   @@r+   ré   ré     s`   ù‡ € ð )Ðà"Ðà ÐØÐØ€Nàñó ðð ‡]‚]ƒ_ôB)ó ðB)òJ!÷y … r-   ré   c                   ó‚   a a€ ] tR tRt oRtRtRtR.tV3R lV 3R lltR t	]
RV3R lR	 ll4       tV3R
 ltRtVtV ;t# )ÚPix2StructVisionModeliˆ  ra   Tr»   c                ó    <€ V ^8„  d   QhRS[ /# r¡   r¢   )rO   rG   s   "€r+   rP   Ú"Pix2StructVisionModel.__annotate__�  s   ø€ ÷ 
ñ 
Ñ5ñ 
r-   c                óÞ   <€ \         SV `  V4       Wn        \        V4      V n        \        V4      V n        \        VP                  VP                  R 7      V n
        V P                  4        R# ©r¿   N)r    r!   rL   rI   rj   rÐ   Úencoderr   r(   rÄ   Ú	layernormÚ	post_initr^   s   &&€r+   r!   ÚPix2StructVisionModel.__init__�  sS   ø€ Ü‰Ñ˜Ô ØŒä4°VÓ<ˆŒÜ.¨vÓ6ˆŒä,¨V×-?Ñ-?ÀV×EZÑEZÔ[ˆŒð 	�‰Ör-   c                ó.   € V P                   P                  # rS   )rj   rV   ©r'   s   &r+   Úget_input_embeddingsÚ*Pix2StructVisionModel.get_input_embeddingsœ  s   € Ø�‰×/Ñ/Ð/r-   c                ó¼   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[R,          RS[R,          RS[R,          RS[S[,          /# )r/   ra   Nr“   rÜ   rÝ   Úreturn_dictrM   )r#   rb   rÞ   rÉ   r   )rO   rG   s   "€r+   rP   r(     ss   ø€ ÷ M
ñ M
á Ÿ<™<¨$Õ.ðM
ñ Ÿ™ tÕ+ðM
ñ   $�;ð	M
ñ
 # T�kðM
ñ ˜D•[ðM
ñ 
Ñ+Õ	+ñM
r-   c                ó>  € Ve   TMV P                   P                  pVe   TMV P                   P                  pVe   TMV P                   P                  pVf   \	        R4      hVf$   VP                  RR7      ^ 8g  P                  4       pV P                  V4      p\        V P                   VVR7      pV P                  VVVVR7      pV^ ,          p	V P                  V	4      p	V'       g   V	3p
W¨R,          ,           # \        V	VP                  VP                  R7      # )a\  
flattened_patches (`torch.FloatTensor` of shape `(batch_size, sequence_length, num_channels x patch_height x patch_width)`):
    Flattened and padded pixel values. These values can be obtained using [`AutoImageProcessor`]. See
    [`Pix2StructVisionImageProcessor.__call__`] for details. Check the [original
    paper](https://huggingface.co/papers/2210.03347) (figure 5) for more details.

Example:

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

>>> image_processor = AutoProcessor.from_pretrained("google/pix2struct-textcaps-base")
>>> model = Pix2StructVisionModel.from_pretrained("google/pix2struct-textcaps-base")

>>> url = "https://www.ilankelman.org/stopsigns/australia.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))

>>> inputs = image_processor(images=image, return_tensors="pt")
>>> with torch.no_grad():
...     outputs = model(**inputs)

>>> last_hidden_states = outputs.last_hidden_state
>>> list(last_hidden_states.shape)
[1, 2048, 768]
```
z%You have to specify flattened_patches©Údim)rL   Úinputs_embedsr“   )r“   rÜ   rÝ   r  rà   r1   )rL   rÜ   rÝ   r4  r  ÚsumÚfloatrj   r
   r+  r,  r   r:   râ   )r'   ra   r“   rÜ   rÝ   r4  r…   Úembedding_outputÚencoder_outputsÚsequence_outputÚhead_outputss   &&&&&&,    r+   r<   ÚPix2StructVisionModel.forwardŸ  s)  € ðP 2CÒ1NÑ-ÐTX×T_ÑT_×TqÑTqÐà$8Ò$DÑ È$Ï+É+×JjÑJjð 	ð &1Ò%<‘kÀ$Ç+Á+×BYÑBYˆàÒ$ÜÐDÓEÐEàÒ!à/×3Ñ3¸Ð3Ó;¸qÑ@×GÑGÓIˆNàŸ?™?Ð+<Ó=Ðä2Ø—;‘;Ø*Ø)ô
ˆð Ÿ,™,ØØ)Ø/Ø!5ð	 'ó 
ˆð *¨!Õ,ˆØŸ.™.¨Ó9ˆçØ+Ð-ˆLØ°"Õ"5Õ5Ð5äØ-Ø)×7Ñ7Ø&×1Ñ1ô
ð 	
r-   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r¡   r¢   )rO   rG   s   "€r+   rP   r(  ˆ  s   ø‡ ‚ á"Ñ"ò r-   )rL   rj   r+  r,  )r  )NNNNN)r?   r@   rA   rB   Úmain_input_namer  Úsupports_gradient_checkpointingÚ_no_split_modulesr!   r1  r   r<   r$  rC   rD   rE   rF   s   @@r+   r&  r&  ˆ  sS   ù‡ € ð *€OØ!ÐØ&*Ð#Ø0Ð1Ð÷
ó 
ò0ð ÷M
ñ M
ó ðM
÷1 … r-   r&  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )rú   iñ  c                ó    <€ V ^8„  d   QhRS[ /# r¡   ©r   )rO   rG   s   "€r+   rP   Ú-Pix2StructTextDenseGatedActDense.__annotate__ò  s   ø€ ÷ /ñ /Ñ3ñ /r-   c                óÒ  <€ \         SV `  4        \        P                  ! VP                  VP
                  R R7      V n        \        P                  ! VP                  VP
                  R R7      V n        \        P                  ! VP
                  VP                  R R7      V n        \        P                  ! VP                  4      V n        \        VP                  ,          V n        R# r¥   r¦   r^   s   &&€r+   r!   Ú)Pix2StructTextDenseGatedActDense.__init__ò  r®   r-   c                óF  € V P                  V P                  V4      4      pV P                  V4      pW#,          pV P                  V4      p\	        V P
                  P                  \        P                  4      '       d’   VP                  V P
                  P                  P                  8w  dc   V P
                  P                  P                  \        P                  8w  d0   VP                  V P
                  P                  P                  4      pV P                  V4      pV# rS   r°   r³   s   &&  r+   r<   Ú(Pix2StructTextDenseGatedActDense.forwardú  r·   r-   r¸   r>   rF   s   @@r+   rú   rú   ñ  r¹   r-   rú   c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )ÚPix2StructTextLayerFFi  c                ó    <€ V ^8„  d   QhRS[ /# r¡   rF  )rO   rG   s   "€r+   rP   Ú"Pix2StructTextLayerFF.__annotate__  s   ø€ ÷ 7ñ 7Ñ3ñ 7r-   c                óÚ   <€ \         SV `  4        \        V4      V n        \	        VP
                  VP                  R 7      V n        \        P                  ! VP                  4      V n        R# r*  )r    r!   rú   ÚDenseReluDenser   r(   Úlayer_norm_epsilonÚ
layer_normr   r[   r\   r]   r^   s   &&€r+   r!   ÚPix2StructTextLayerFF.__init__  sK   ø€ Ü‰ÑÔÜ>¸vÓFˆÔä-¨f×.@Ñ.@Àf×F_ÑF_Ô`ˆŒÜ—z’z &×"5Ñ"5Ó6ˆŽr-   c                óx   € V P                  V4      pV P                  V4      pWP                  V4      ,           pV# rS   )rS  rQ  r]   )r'   r:   Úforwarded_statess   && r+   r<   ÚPix2StructTextLayerFF.forward  s;   € ØŸ?™?¨=Ó9ÐØ×.Ñ.Ð/?Ó@ÐØ%¯©Ð5EÓ(FÕFˆØÐr-   )rQ  r]   rS  r>   rF   s   @@r+   rM  rM    s   ù‡ € ÷7ó 7÷ò r-   rM  c                ó<  € V ^8„  d   QhR\         P                  R\        P                  R\        P                  R\        P                  R\        P                  R,          R\        R,          R\        R	\        P                  R,          R
\
        \        ,          /	# )r/   r
  r}   r~   r   r“   Nr{   r]   Úposition_biasr…   )r   ÚModuler#   rb   r:  r   r   )rO   s   "r+   rP   rP     sŽ   € ÷ %ñ %Ü�I‰Ið%ä�<‰<ð%ô 
�‰ð%ô �<‰<ð	%ô
 —L‘L 4Õ'ð%ô �T�\ð%ô ð%ô —<‘< $Õ&ð%ô Ô'Õ(ñ%r-   c                 óÎ  € Vf   VP                  R4      R,          p\        P                  ! WP                  ^^4      4      V,          p	Ve	   W—,           p	Ve	   W”,           p	\        P
                  P                  V	RR7      p	\        P
                  P                  W–V P                  R7      p	\        P                  ! W“4      p
V
P                  ^^4      P                  4       p
W©3# )Nr6  )Úpr�   r1   rõ   )
Úsizer#   ÚmatmulrŒ   r   Ú
functionalÚsoftmaxr]   r�   r’   )r
  r}   r~   r   r“   r{   r]   rY  r…   rœ   r›   s   &&&&&&&&,  r+   r�   r�     s¿   € ð ‚Ø—*‘*˜R“. DÕ(ˆô —<’< §}¡}°Q¸Ó':Ó;¸gÕE€LàÒ Ø#Õ3ˆàÒ!Ø#Õ4ˆä—=‘=×(Ñ(¨¸2Ð(Ó>€LÜ—=‘=×(Ñ(¨È6Ï?É?Ð(Ó[€Lä—,’,˜|Ó3€KØ×'Ñ'¨¨1Ó-×8Ñ8Ó:€KàÐ$Ð$r-   c                   óv   a a€ ] tR tRt oR	V3R lV 3R lllt]R
R l4       tRR ltRV3R lR lltRt	Vt
V ;t# )rÿ   i?  c                ó:   <€ V ^8„  d   QhRS[ RS[R,          RS[/# )r/   rL   Ú	layer_idxNr|   )r   ÚintrÞ   )rO   rG   s   "€r+   rP   Ú$Pix2StructTextAttention.__annotate__@  s-   ø€ ÷ $,ñ $,á$ð$,ñ ˜•:ð	$,ñ
 ñ$,r-   c                óö  <€ \         SV `  4        Wn        W@n        W n        VP
                  V n        VP                  V n        VP                  V n        VP                  V n	        VP                  V n        VP                  V n        V P                  V P                  ,          V n        R V n        W0n        Vf.   \"        P%                  RV P&                  P(                   R24       \*        P,                  ! V P                  V P                  RR7      V n        \*        P,                  ! V P                  V P                  RR7      V n        \*        P,                  ! V P                  V P                  RR7      V n        \*        P,                  ! V P                  V P                  RR7      V n        V P                  '       d1   \*        P6                  ! V P
                  V P                  4      V n        RV n        R# )rr   NzInstantiating a decoder z³ without passing `layer_idx` is not recommended and will to errors during the forward call, if caching is used. Please make sure to provide a `layer_idx` when creating this class.Frs   )r    r!   rL   r|   r  Úrelative_attention_num_bucketsÚrelative_attention_max_distancer(   ru   rv   r   rx   r\   r]   rz   r{   rc  ÚloggerÚwarning_oncer*   r?   r   rT   r}   r~   r   r€   rW   r  r�   )r'   rL   r  rc  r|   r*   s   &&&&&€r+   r!   Ú Pix2StructTextAttention.__init__@  sy  ø€ ô 	‰ÑÔØŒØ"ŒØ+FÔ(Ø.4×.SÑ.SˆÔ+Ø/5×/UÑ/UˆÔ,Ø!×-Ñ-ˆÔØ"(§+¡+ˆÔØ×'Ñ'ˆŒØ×*Ñ*ˆŒØŸ™¨×(?Ñ(?Õ?ˆŒàˆŒØ"ŒØÒÜ×ÑØ*¨4¯>©>×+BÑ+BÐ*Cð D,ð ,ôô —Y’Y˜t×/Ñ/°×1AÑ1AÈÔNˆŒ
Ü—9’9˜T×-Ñ-¨t×/?Ñ/?ÀeÔLˆŒÜ—Y’Y˜t×/Ñ/°×1AÑ1AÈÔNˆŒ
Ü—i’i × 0Ñ 0°$×2BÑ2BÈÔOˆŒà×+×+Ð+Ü+-¯<ª<¸×8[Ñ8[Ð]a×]iÑ]iÓ+jˆDÔ(à&+ˆÖ#r-   c                óÄ  € ^ pV'       dP   V^,          pW@^ 8„  P                  \        P                  4      V,          ,          p\        P                  ! V 4      p M,\        P                  ! V \        P
                  ! V 4      4      ) p V^,          pW8  pV\        P                  ! V P                  4       V,          4      \        P                  ! W5,          4      ,          W%,
          ,          P                  \        P                  4      ,           p\        P                  ! V\        P                  ! Wr^,
          4      4      pV\        P                  ! W`V4      ,          pV# )aR  
Adapted from Mesh Tensorflow:
https://github.com/tensorflow/mesh/blob/0cb87fe07da627bf0b7e60475d59f95ed6b5be3d/mesh_tensorflow/transformer/transformer_layers.py#L593

Translate relative position to a bucket number for relative attention. The relative position is defined as
memory_position - query_position, i.e. the distance in tokens from the attending position to the attended-to
position. If bidirectional=False, then positive relative positions are invalid. We use smaller buckets for
small absolute relative_position and larger buckets for larger absolute relative_positions. All relative
positions >=max_distance map to the same bucket. All relative positions <=-max_distance map to the same bucket.
This should allow for more graceful generalization to longer sequences than the model has been trained on

Args:
    relative_position: an int32 Tensor
    bidirectional: a boolean - whether the attention is bidirectional
    num_buckets: an integer
    max_distance: an integer

Returns:
    a Tensor with the same shape as relative_position, containing int32 values in the range [0, num_buckets)
)r2   r#   rg   ÚabsÚminÚ
zeros_likeÚlogr:  ÚmathÚ	full_likeÚwhere)Úrelative_positionÚbidirectionalÚnum_bucketsÚmax_distanceÚrelative_bucketsÚ	max_exactÚis_smallÚrelative_position_if_larges   &&&&    r+   Ú_relative_position_bucketÚ1Pix2StructTextAttention._relative_position_bucketf  s  € ð. ÐßØ˜AÕˆKØ°QÑ!6× :Ñ :¼5¿:¹:Ó FÈÕ TÕTÐÜ %§	¢	Ð*;Ó <Ñä!&§¢Ð+<¼e×>NÒ>NÐO`Ó>aÓ!bÐ bÐð   1Õ$ˆ	Ø$Ñ0ˆð &/Ü�IŠIÐ'×-Ñ-Ó/°)Õ;Ó<Ü�hŠh�|Õ/Ó0õ1àÕ&õ(÷ ‰"ŒU�Z‰Z‹.õ	&Ð"ô
 &+§Y¢YØ&¬¯ªÐ8RÐbcÕTcÓ(dó&
Ð"ð 	œEŸKšK¨ÐE_Ó`Õ`ÐØÐr-   c                óÜ  € Vf!   V P                   P                  P                  p\        P                  ! V\        P
                  VR7      R,          V,           p\        P                  ! V\        P
                  VR7      R,          pWe,
          pV P                  VRV P                  V P                  R7      pV P                  V4      p	V	P                  . RO4      P                  ^ 4      p	V	# )z%Compute binned relative position bias)r7   ÚdeviceF)ru  rv  rw  )rd   N)Nrd   )r/   re   rf   )r  r%   r  r#   Úarangerg   r|  rg  rh  ÚpermuteÚ	unsqueeze)
r'   Úquery_lengthÚ
key_lengthr  Úpast_seen_tokensÚcontext_positionÚmemory_positionrt  Úrelative_position_bucketÚvaluess
   &&&&&     r+   Úcompute_biasÚ$Pix2StructTextAttention.compute_bias˜  sÆ   € àŠ>Ø×1Ñ1×8Ñ8×?Ñ?ˆFÜ Ÿ<š<¨¼E¿J¹JÈvÔVÐW^Õ_ÐbrÕrÐÜŸ,š, z¼¿¹ÈFÔSÐT[Õ\ˆØ+Õ>ÐØ#'×#AÑ#AØØØ×;Ñ;Ø×=Ñ=ð	 $Bó $
Ð ð ×-Ñ-Ð.FÓGˆØ—‘¢	Ó*×4Ñ4°QÓ7ˆØˆr-   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# r„   r†   )rO   rG   s   "€r+   rP   re  ª  s    ø€ ÷ [8ñ [8ñ Ñ+Õ,ñ[8r-   c           	     óø  € VP                   RR p. VORNV P                  N5pVe   VP                  V P                  4      M^ p	\	        V	\
        P                  4      '       d   V	P                  4       MT	p	VRJp
V P                  V4      P                  V4      P                  ^^4      pRp\	        V\        4      '       dH   VP                  P                  V P                  4      pV
'       d   VP                  pMVP                  pMTpV
'       d   TMTpV
'       d\   VeX   V'       dP   VP                   V P                  ,          P"                  pVP                   V P                  ,          P$                  pMÛ. VP                   RR 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eX   VP+                  VVV P                  4      w  ppV
'       d0   \	        V\        4      '       d   RVP                  V P                  &   Vfº   VP                   R,          pV P,                  '       go   \
        P.                  ! ^V P0                  V^,          V3VP2                  VP4                  R7      pV P6                  '       d   V P8                  '       d   RVn        M&V P=                  V^,          VVP2                  V	R7      pVeA   \	        V\
        P                  4      '       d!   VRRRRVP                   R,          13,          p\>        P@                  ! V PB                  PD                  \F        4      pT! V VVVV3RV P8                  '       g   RMV PH                  R	V PJ                  R
V/VB w  ppVPL                  ! . VORN5!  PO                  4       pV PQ                  V4      pVVV3# )zp
Self-attention (if key_value_states is None) or attention over source sentence (provided by key_value_states).
NFT)r  r7   )r  r…  rd   r]   r‰   r{   rY  r1   éþÿÿÿ))rŠ   rv   Úget_seq_lengthrc  r±   r#   rb   r  r}   r‹   rŒ   r   Ú
is_updatedÚgetÚcross_attention_cacheÚself_attention_cacheÚlayersÚkeysr‰  r~   r   Úupdater  Úzerosrx   r  r7   r�   r�   Úrequires_gradrŠ  r   r�   rL   rŽ   r�   r]   r{   r‘   r’   r€   )r'   r:   ÚmaskÚkey_value_statesrY  Úpast_key_valuesr…   Úinput_shaper–   r…  Úis_cross_attentionr—   r�  Úcurr_past_key_valuesÚcurrent_statesr˜   r™   Úkv_shaper„  rš   r›   rœ   s   &&&&&&,               r+   r<   ÚPix2StructTextAttention.forwardª  s’  € ð $×)Ñ)¨#¨2Ð.ˆØB˜ÐB bÐB¨$×*AÑ*AÑBˆØM\ÒMh˜?×9Ñ9¸$¿.¹.ÔIÐnoÐä7AÐBRÔTY×T`ÑT`×7aÒ7aÐ+×1Ñ1Ô3ÐgwÐð .°TÐ9Ðà—z‘z -Ó0×5Ñ5°lÓC×MÑMÈaÐQRÓSˆð ˆ
Ü�oÔ':×;Ò;Ø(×3Ñ3×7Ñ7¸¿¹ÓGˆJß!à'6×'LÑ'LÑ$à'6×'KÑ'KÑ$à#2Ð ç-?Ñ)À]ˆß /Ò"=Ç*à-×4Ñ4°T·^±^ÕD×IÑIˆJØ/×6Ñ6°t·~±~ÕF×MÑM‰LàP˜×-Ñ-¨c¨rÐ2ÐP°BÐP¸×8OÑ8OÑPˆHØŸ™ .Ó1×6Ñ6°xÓ@×JÑJÈ1ÈaÓPˆJØŸ:™: nÓ5×:Ñ:¸8ÓD×NÑNÈqÐRSÓTˆLàÒ*Ø+?×+FÑ+FÀzÐS_Ðae×aoÑaoÓ+pÑ(�
˜Lç%¬*°_ÔFY×*ZÒ*ZØAE�O×.Ñ.¨t¯~©~Ñ>àÒ Ø#×)Ñ)¨"Õ-ˆJØ×3×3Ð3Ü %§¢Ø˜Ÿ™ k°!¥n°jÐAØ'×.Ñ.Ø&×,Ñ,ô!�ð
 ×.×.Ð.°4·=·=°=Ø26�MÔ/øà $× 1Ñ 1Ø •N J°|×7JÑ7JÐ]mð !2ó !�ð Ò¤
¨4´·±× >Ò >à˜˜1˜aÐ!7 :×#3Ñ#3°BÕ#7Ð!7Ð7Õ8ˆDä(?×(MÒ(MØ�K‰K×,Ñ,Ô.Eó)
Ðñ %8ØØØØØñ
%
ð  $Ÿ}Ÿ}˜}‘C°$·,±,ð
%
ð —L‘Lð
%
ð (ð
%
ð ñ
%
Ñ!ˆ�\ð "×)Ò)Ð;¨;Ð;¸Ó;×FÑFÓHˆØ—k‘k +Ó.ˆà˜M¨<Ð7Ð7r-   )rL   r]   r�   r  r(   rz   r|   r~   rv   rc  rx   r€   r}   r  rh  rg  r{   r   )FNF)Té    é€   )Nre   )NNNN)r?   r@   rA   rB   r!   Ústaticmethodr|  rŠ  r<   rC   rD   rE   rF   s   @@r+   rÿ   rÿ   ?  s<   ù‡ € ÷$,õ $,ðL ó- ó ð- ô`÷$[8÷ [8ò [8r-   rÿ   c                   óX   a a€ ] tR tRt oRV3R lV 3R llltRV3R lR lltRtVtV ;t# )	Ú Pix2StructTextLayerSelfAttentioni	  c                ó.   <€ V ^8„  d   QhRS[ R,          /# ©r/   rc  N©rd  )rO   rG   s   "€r+   rP   Ú-Pix2StructTextLayerSelfAttention.__annotate__
  s   ø€ ÷ 	7ñ 	7ÉSÐSWÍZñ 	7r-   c                óö   <€ \         SV `  4        \        VVVVP                  R 7      V n        \        VP                  VP                  R7      V n        \        P                  ! VP                  4      V n        R# )©r  rc  r|   r¿   N)r    r!   rÿ   Ú
is_decoderrÂ   r   r(   rR  rS  r   r[   r\   r]   ©r'   rL   r  rc  r*   s   &&&&€r+   r!   Ú)Pix2StructTextLayerSelfAttention.__init__
  s^   ø€ Ü‰ÑÔÜ0ØØ(CØØ×'Ñ'ô	
ˆŒô .¨f×.@Ñ.@Àf×F_ÑF_Ô`ˆŒÜ—z’z &×"5Ñ"5Ó6ˆŽr-   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# r„   r†   )rO   rG   s   "€r+   rP   rª    s   ø€ ÷ =ñ =ñ Ñ+Õ,ñ=r-   c           	     ó’   € V P                  V4      pV P                  ! V3R VRVRV/VB w  rspWP                  V4      ,           pWsV3# )r™  rY  r›  ©rS  rÂ   r]   )	r'   r:   r“   rY  r›  r…   Únormed_hidden_statesrÌ   rœ   s	   &&&&&,   r+   r<   Ú(Pix2StructTextLayerSelfAttention.forward  sp   € ð  $Ÿ™¨}Ó=ÐØ8<¿ºØ ñ9
àð9
ð (ð9
ð ,ð	9
ð
 ñ9
Ñ5Ð¨ð )¯<©<Ð8HÓ+IÕIÐØ°Ð<Ð<r-   ©rÂ   r]   rS  rÔ   ©NNNr>   rF   s   @@r+   r¦  r¦  	  s   ù‡ € ÷	7õ 	7÷=÷ =ò =r-   r¦  c                   óX   a a€ ] tR tRt oRV3R lV 3R llltRV3R lR lltRtVtV ;t# )	Ú!Pix2StructTextLayerCrossAttentioni*  c                ó.   <€ V ^8„  d   QhRS[ R,          /# r¨  r©  )rO   rG   s   "€r+   rP   Ú.Pix2StructTextLayerCrossAttention.__annotate__+  s   ø€ ÷ 7ñ 7©#°­*ñ 7r-   c                óâ   <€ \         SV `  4        \        VR VR R7      V n        \	        VP
                  VP                  R7      V n        \        P                  ! VP                  4      V n        R# )Fr¬  r¿   N)r    r!   rÿ   rÂ   r   r(   rR  rS  r   r[   r\   r]   )r'   rL   rc  r*   s   &&&€r+   r!   Ú*Pix2StructTextLayerCrossAttention.__init__+  sV   ø€ Ü‰ÑÔÜ0Ø°ÀÐV[ô
ˆŒô .¨f×.@Ñ.@Àf×F_ÑF_Ô`ˆŒÜ—z’z &×"5Ñ"5Ó6ˆŽr-   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# r„   r†   )rO   rG   s   "€r+   rP   rº  3  s   ø€ ÷ 9ñ 9ñ Ñ+Õ,ñ9r-   c                ó–   € V P                  V4      pV P                  ! V3R VRVRVRV/VB w  r„p	WP                  V4      ,           p
W¤V	3# )r™  rš  rY  r›  r²  )r'   r:   rš  r“   rY  r›  r…   r³  rÌ   rœ   rÍ   s   &&&&&&,    r+   r<   Ú)Pix2StructTextLayerCrossAttention.forward3  sy   € ð  $Ÿ™¨}Ó=ÐØ8<¿ºØ ñ9
àð9
ð .ð9
ð (ð	9
ð
 ,ð9
ð ñ9
Ñ5Ð¨ð %§|¡|Ð4DÓ'EÕEˆØ¨LÐ8Ð8r-   rµ  rS   r¶  r>   rF   s   @@r+   r¸  r¸  *  s   ù‡ € ÷7õ 7÷9÷ 9ò 9r-   r¸  c                   óL   a a€ ] tR tRt oRV3R lV 3R llltRR ltRtVtV ;t# )ÚPix2StructTextBlockiI  c                ó.   <€ V ^8„  d   QhRS[ R,          /# r¨  r©  )rO   rG   s   "€r+   rP   Ú Pix2StructTextBlock.__annotate__J  s   ø€ ÷ 1ñ 1ÉSÐSWÍZñ 1r-   c                óŽ   <€ \         SV `  4        \        VVVR 7      V n        \	        VVR7      V n        \        V4      V n        R# )©r  rc  )rc  N)r    r!   r¦  Úself_attentionr¸  Úencoder_decoder_attentionrM  rÃ   r®  s   &&&&€r+   r!   ÚPix2StructTextBlock.__init__J  sH   ø€ Ü‰ÑÔä>ØØ(CØô
ˆÔô *KØØô*
ˆÔ&ô
 )¨Ó0ˆŽr-   c           	     óx  € V P                  VVVVVV	R 7      pV^ ,          pVR,          pVP                  \        P                  8X  du   \        P                  ! V4      P                  4       '       dK   \        P                  ! VP                  4      P                  R,
          p\        P                  ! W) VR7      pVRJpV'       dÄ   V P                  VVVVVV	R7      pV^ ,          pVP                  \        P                  8X  du   \        P                  ! V4      P                  4       '       dK   \        P                  ! VP                  4      P                  R,
          p\        P                  ! W) VR7      pVVR,          ,           pV P                  V4      pVP                  \        P                  8X  du   \        P                  ! V4      P                  4       '       dK   \        P                  ! VP                  4      P                  R,
          p\        P                  ! W) VR7      pV3pVV,           # ))r“   rY  r›  Ú	use_cacherÜ   r  iè  )rn  ÚmaxN)rš  r“   rY  r›  rÜ   )rÆ  r7   r#   r8   ÚisinfÚanyÚfinforË  ÚclamprÇ  rÃ   )r'   r:   r“   rY  Úencoder_hidden_statesÚencoder_attention_maskÚencoder_decoder_position_biasr›  rÊ  rÜ   r4  r…   Úself_attention_outputsÚattention_outputsÚclamp_valueÚdo_cross_attentionÚcross_attention_outputsÚoutputss   &&&&&&&&&&&,      r+   r<   ÚPix2StructTextBlock.forwardZ  sÒ  € ð "&×!4Ñ!4ØØ)Ø'Ø+ØØ/ð "5ó "
Ðð /¨qÕ1ˆØ2°2Õ6Ðð ×Ñ¤%§-¡-Ô/´E·K²KÀÓ4N×4RÑ4R×4TÒ4TÜŸ+š+ m×&9Ñ&9Ó:×>Ñ>ÀÕEˆKÜ!ŸKšK¨¸<È[ÔYˆMà2¸$Ð>ÐßØ&*×&DÑ&DØØ!6Ø5Ø;Ø /Ø"3ð 'Eó 'Ð#ð 4°AÕ6ˆMð ×"Ñ"¤e§m¡mÔ3¼¿ºÀMÓ8R×8VÑ8V×8XÒ8XÜ#Ÿkšk¨-×*=Ñ*=Ó>×BÑBÀTÕI�Ü %§¢¨M¸|ÐQ\Ô ]�ð !2Ð4KÈBÕ4OÕ OÐð Ÿ™ Ó/ˆð ×Ñ¤%§-¡-Ô/´E·K²KÀÓ4N×4RÑ4R×4TÒ4TÜŸ+š+ m×&9Ñ&9Ó:×>Ñ>ÀÕEˆKÜ!ŸKšK¨¸<È[ÔYˆMà Ð"ˆàÐ*Õ*Ð*r-   )rÇ  rÃ   rÆ  rÔ   )	NNNNNNFFTr>   rF   s   @@r+   rÁ  rÁ  I  s   ù‡ € ÷1õ 1÷ <+ô <+r-   rÁ  z3
    The standalone text decoder of Pix2Struct
    )Úcustom_introc                   óz   a a€ ] tR tRt oRtR.tRR/tRtV 3R ltR t	]
RV3R lR	 ll4       tV3R
 ltRtVtV ;t# )r  i™  rÁ  zlm_head.weightzembed_tokens.weightTc                ód  <€ \         SV `  V4       \        P                  ! VP                  VP
                  4      V n        \        P                  ! \        VP                  4       Uu. uF  p\        V\        V^ 8H  4      VR7      NK  	  up4      V n        \        VP
                  VP                  R7      V n        \        P                   ! VP"                  4      V n        \        P&                  ! VP
                  VP                  RR7      V n        V P+                  4        RV n        R# u upi )re   rÅ  r¿   Frs   N)r    r!   r   rW   Ú
vocab_sizer(   Úembed_tokensrÕ   rÖ   Ú
num_layersrÁ  rÞ   rØ   r   rR  Úfinal_layer_normr[   r\   r]   rT   r  r-  r�   )r'   rL   Úir*   s   && €r+   r!   ÚPix2StructTextModel.__init__¥  sæ   ø€ Ü‰Ñ˜Ô ÜŸLšL¨×):Ñ):¸F×<NÑ<NÓOˆÔä—]’]ô ˜v×0Ñ0Ô1óá1�Aô $ FÌÈQÐRSÉVËÐ`a×bÙ1ñó
ˆŒ
ô !4°F×4FÑ4FÈF×LeÑLeÔ fˆÔÜ—z’z &×"5Ñ"5Ó6ˆŒä—y’y ×!3Ñ!3°V×5FÑ5FÈUÔSˆŒð 	�‰ÔØ&+ˆÖ#ùòs   Á(#D-c                ó   € Wn         R # rS   )rÞ  ©r'   Únew_embeddingss   &&r+   Úset_input_embeddingsÚ(Pix2StructTextModel.set_input_embeddings¸  s   € Ø*Ö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,          R	S[R,          R
S[R,          RS[ P                  R,          RS[R,          RS[S[ P                  R3,          S[,          /# )r/   rì   Nr“   rÐ  rÑ  r8  r›  rÊ  rÜ   rÝ   Úlabelsr4  rM   .)r#   Ú
LongTensorÚFloatTensorr   rÞ   rÉ   r   )rO   rG   s   "€r+   rP   Ú Pix2StructTextModel.__annotate__¼  sý   ø€ ÷ w
ñ w
á×#Ñ# dÕ*ðw
ñ ×)Ñ)¨DÕ0ðw
ñ  %×0Ñ0°4Õ7ð	w
ñ
 !&× 1Ñ 1°DÕ 8ðw
ñ ×'Ñ'¨$Õ.ðw
ñ  �ðw
ñ ˜$•;ðw
ñ   $�;ðw
ñ # T�kðw
ñ × Ñ  4Õ'ðw
ñ ˜D•[ðw
ñ 
‰u× Ñ  #Ð%Õ	&Ñ)JÕ	Jñw
r-   c                óz	  € Ve   TMV P                   P                  pVe   TMV P                   P                  pV	e   T	MV P                   P                  p	Ve   TMV P                   P                  pV P
                  '       d2   V P                  '       d    V'       d   \        P                  R4       RpVe   Ve   \        R4      hVe+   VP                  4       pVP                  RVR,          4      pM#Ve   VP                  4       RR pM\        R4      hVf'   V P                  f   Q R4       hV P                  V4      pVw  rïV'       dl   Vfh   V P                   P                  '       d6   \        \        V P                   R7      \        V P                   R7      4      pM\        V P                   R7      pVfA   Ve   VP!                  4       V,           MTp\"        P$                  ! VVVP&                  R7      pV P                   P(                  '       d=   \+        V P                   TT\-        V\        4      '       d   VP.                  MTR	7      pM]VR,          pVP1                  VP2                  R
7      pRV,
          \"        P4                  ! VP2                  4      P6                  ,          pVe   \9        V P                   VVVR7      pV	'       d   RMRpV'       d   RMRpV'       d   RMRpRpRpV P;                  V4      p\=        V P>                  4       Fz  w  ppV	'       d   VV3,           pV! VVVVVVVVVR7	      pV^ ,          pV^,          pVe
   V^,          pV'       g   KR  VV^,          3,           pVf   Ki  VV^,          3,           pK|  	  V PA                  V4      pV P;                  V4      pV PC                  V4      pV	'       d   VV3,           pRpV
e‡   V
P1                  VP&                  4      p
\D        PF                  ! RRR7      pV! VPI                  4       P                  RVP                  R4      4      V
PI                  4       P                  R4      4      pV'       g9   \J        ;QJ d    . R VVVVVV3 4       F  NK  	  5# ! R VVVVVV3 4       4      # \M        VVVVVVR7      # )aÅ  
input_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`):
    Indices of input sequence tokens in the vocabulary. Pix2StructText is a model with relative position
    embeddings so you should be able to pad the inputs on both the right and the left.

    Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and
    [`PreTrainedTokenizer.__call__`] for detail.

    [What are input IDs?](../glossary#input-ids)

    To know more on how to prepare `input_ids` for pretraining take a look a [Pix2StructText
    Training](./t5#training).

Example:

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

>>> processor = AutoProcessor.from_pretrained("google/pix2struct-textcaps-base")
>>> model = Pix2StructTextModel.from_pretrained("google/pix2struct-textcaps-base")

>>> inputs = processor(text="Hello, my dog is cute", return_tensors="pt")
>>> outputs = model(**inputs)
>>> loss = outputs.loss
```
NzZ`use_cache=True` is incompatible with gradient checkpointing. Setting `use_cache=False`...FzTYou cannot specify both decoder_input_ids and decoder_inputs_embeds at the same timezEYou have to specify either decoder_input_ids or decoder_inputs_embedsz<You have to initialize the model with valid token embeddings)rL   )r  )rL   r8  r“   r›  )r7   rr   )rL   r8  r“   rÐ  )r›  rÊ  rÜ   r5   )Úignore_indexÚ	reductionc              3   ó2   "  € T F  pVf   K	  Vx € K  	  R # 5irS   rã   )Ú.0Úvs   & r+   Ú	<genexpr>Ú.Pix2StructTextModel.forward.<locals>.<genexpr>`  s"   é € ð ñ�Að ÷ ’óùs   ‚�
)ÚlossÚlogitsr›  r:   râ   Úcross_attentionsr1   )rd   NNrd   rã   r  )'rL   rÊ  rÜ   rÝ   r4  r�   r�   ri  Úwarningr  r]  r‹   rÞ  Úis_encoder_decoderr   r   r�  r#   r$   r  r­  r   r±   r“  r2   r7   rÎ  rn  r
   r]   Ú	enumeraterØ   rà  r  r   ÚCrossEntropyLossr’   rÉ   r   )r'   rì   r“   rÐ  rÑ  r8  r›  rÊ  rÜ   rÝ   ré  r4  r…   rœ  r”   r•   Úmask_seq_lengthÚcausal_maskrä   Úall_attentionsÚall_cross_attentionsrY  rÒ  r:   rá  ræ   Úlayer_outputsrö  rõ  Úloss_fcts   &&&&&&&&&&&&,                 r+   r<   ÚPix2StructTextModel.forward»  su  € ðT "+Ò!6‘I¸D¿K¹K×<QÑ<Qˆ	Ø1BÒ1NÑ-ÐTX×T_ÑT_×TqÑTqÐà$8Ò$DÑ È$Ï+É+×JjÑJjð 	ð &1Ò%<‘kÀ$Ç+Á+×BYÑBYˆà×&×&Ð&¨4¯=¯=¨=¿YÜ�N‰NØlôð ˆIàÒ  ]Ò%>ÜÐsÓtÐtØÒ"Ø#Ÿ.™.Ó*ˆKØ!Ÿ™ r¨;°r­?Ó;‰IØÒ&Ø'×,Ñ,Ó.¨s°Ð3‰KäÐdÓeÐeàÒ Ø×$Ñ$Ò0ÐpÐ2pÓpÐ0Ø ×-Ñ-¨iÓ8ˆMà!,Ñˆ
ç˜Ò0Ø�{‰{×-×-Ð-Ü"5Ü ¨¯©Ô4´lÈ$Ï+É+Ô6Vó#‘ô #/°d·k±kÔ"B�àÒ!ð BQÒA\�×.Ñ.Ó0°:Ö=Ðblð ô #ŸZšZ¨
°OÈM×L`ÑL`ÔaˆNà�;‰;×!×!Ð!Ü,Ø—{‘{Ø+Ø-ä˜oÔ/B×CÒCð !0× DÒ Dà$ô‰Kð )Ð)9Õ:ˆKØ%Ÿ.™.¨}×/BÑ/B˜.ÓCˆKØ Õ,´·²¸M×<OÑ<OÓ0P×0TÑ0TÕTˆKà!Ò-Ü%>Ø—{‘{Ø+Ø5Ø&;ô	&Ð"÷ #7™B¸DÐß0™°dˆß&7™r¸dÐØˆØ(,Ð%àŸ™ ]Ó3ˆä(¨¯©Ö4‰OˆAˆ|ß#Ø$5¸Ð8HÕ$HÐ!á(ØØØØ%Ø&Ø-Ø /Ø#Ø"3ô
ˆMð *¨!Õ,ˆMð *¨!Õ,ˆMØ$Ò0Ø0=¸aÕ0@Ð-ç Ñ Ø!/°=ÀÕ3CÐ2EÕ!E�Ø(Ô4Ø+?À=ÐQRÕCSÐBUÕ+UÒ(ñ;  5ð> ×-Ñ-¨mÓ<ˆØŸ™ ]Ó3ˆà—‘˜mÓ,ˆ÷  Ø 1°]Ð4DÕ DÐàˆØÒà—Y‘Y˜vŸ}™}Ó-ˆFÜ×*Ò*¸ÈÔOˆHá˜F×-Ñ-Ó/×4Ñ4°R¸¿¹ÀR»ÓIÈ6×K\ÑK\ÓK^×KcÑKcÐdfÓKgÓhˆDçß”5ñ ð ØØ#Ø%Ø"Ø(ñó—5ð �5ñ ð ØØ#Ø%Ø"Ø(ñóó ð ô 1ØØØ+Ø+Ø%Ø1ô
ð 	
r-   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r¡   rF  )rO   rG   s   "€r+   rP   rì  ™  s   ø‡ ‚ ñ !Ñ ò r-   )r]   rÞ  rà  r�   rØ   r  )r  )NNNNNNNNNNN)r?   r@   rA   rB   r  rC  Ú_tied_weights_keysrB  r!   ræ  r   r<   r$  rC   rD   rE   rF   s   @@r+   r  r  ™  sV   ù‡ € ð !ÐØ.Ð/ÐØ*Ð,AÐBÐØ&*Ð#õ,ò&+ð ÷w
ñ w
ó ðw
÷G … r-   r  zr
    A conditional generation model with a language modeling head. Can be used for sequence generation tasks.
    c                   ó’   a a€ ] tR tRt oRtV3R lV 3R lltR tR tV3R lR ltR	 t	]
RV3R
 lR ll4       tV3R ltRtVtV ;t# )Ú"Pix2StructForConditionalGenerationiv  ra   c                ó    <€ V ^8„  d   QhRS[ /# r¡   rN   )rO   rG   s   "€r+   rP   Ú/Pix2StructForConditionalGeneration.__annotate__  s   ø€ ÷ 	ñ 	Ñ/ñ 	r-   c                óÐ   <€ \         SV `  V4       \        VP                  4      V n        \        VP                  4      V n        VP                  V n        V P                  4        R # rS   )
r    r!   r&  Úvision_configr+  r  rû   ÚdecoderÚis_vqar-  r^   s   &&€r+   r!   Ú+Pix2StructForConditionalGeneration.__init__  sK   ø€ Ü‰Ñ˜Ô ä,¨V×-AÑ-AÓBˆŒÜ*¨6×+=Ñ+=Ó>ˆŒà—m‘mˆŒð 	�‰Ör-   c                ó6   € V P                   P                  4       # rS   )r  r1  r0  s   &r+   r1  Ú7Pix2StructForConditionalGeneration.get_input_embeddingsŠ  s   € Ø�|‰|×0Ñ0Ó2Ð2r-   c                ó<   € V P                   P                  V4       R # rS   )r  ræ  rä  s   &&r+   ræ  Ú7Pix2StructForConditionalGeneration.set_input_embeddings�  s   € Ø�‰×)Ñ)¨.Ö9r-   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r/   rM   )r   rZ  )rO   rG   s   "€r+   rP   r  �  s   ø€ ÷ 4ñ 4¡r§y¡yñ 4r-   c                ó6   € V P                   P                  4       # rS   )r  Úget_output_embeddingsr0  s   &r+   r  Ú8Pix2StructForConditionalGeneration.get_output_embeddings�  s   € Ø�|‰|×1Ñ1Ó3Ð3r-   c                ó<   € V P                   P                  V4       R # rS   )r  Úset_output_embeddingsrä  s   &&r+   r  Ú8Pix2StructForConditionalGeneration.set_output_embeddings“  s   € Ø�‰×*Ñ*¨>Ö: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[S[S[ P                  ,          ,          R,          RS[R,          RS[ P                  R,          R	S[ P                  R,          R
S[R,          RS[R,          RS[R,          RS[R,          RS[S[ P                  ,          S[,          /# )r/   ra   Nr“   rë   rí   r<  r›  ré  Údecoder_inputs_embedsrÊ  rÜ   rÝ   r4  rM   )	r#   rë  rê  Ú
BoolTensorrÉ   r   rb   rÞ   r   )rO   rG   s   "€r+   rP   r  —  s  ø€ ÷ b
ñ b
á ×,Ñ,¨tÕ3ðb
ñ ×)Ñ)¨DÕ0ðb
ñ !×+Ñ+¨dÕ2ð	b
ñ
 !&× 0Ñ 0°4Õ 7ðb
ñ ™u¡U×%6Ñ%6Õ7Õ8¸4Õ?ðb
ñ  �ðb
ñ × Ñ  4Õ'ðb
ñ  %Ÿ|™|¨dÕ2ðb
ñ ˜$•;ðb
ñ   $�;ðb
ñ # T�kðb
ñ ˜D•[ðb
ñ 
‰u× Ñ Õ	!Ñ$6Õ	6ñb
r-   c                ó‚  € V	e   T	MV P                   P                  P                  p	Ve   TMV P                   P                  pVf   V P	                  VVV
VVR7      pMeV'       d^   \        V\        4      '       gH   \        V^ ,          \        V4      ^8”  d
   V^,          MR\        V4      ^8”  d
   V^,          MRR7      pV^ ,          pVeX   VfT   VfP   V P                  V4      pVe   TM2VP                  V P                   P                  4      P                  4       p^VR&   V P                  VVVVVVV	V
VVVR7      pV'       g	   Wõ,           # \        VP                  VP                  VP                   VP"                  VP$                  VP&                  VP(                  VP"                  VP$                  R7	      # )aŒ  
flattened_patches (`torch.FloatTensor` of shape `(batch_size, seq_length, hidden_size)`):
    Flattened pixel patches. the `hidden_size` is obtained by the following formula: `hidden_size` =
    `num_channels` * `patch_size` * `patch_size`

    The process of flattening the pixel patches is done by `Pix2StructProcessor`.
decoder_input_ids (`torch.LongTensor` of shape `(batch_size, target_sequence_length)`, *optional*):
    Indices of decoder input sequence tokens in the vocabulary.

    Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and
    [`PreTrainedTokenizer.__call__`] for details.

    [What are decoder input IDs?](../glossary#decoder-input-ids)

    Pix2StructText uses the `pad_token_id` as the starting token for `decoder_input_ids` generation. If
    `past_key_values` is used, optionally only the last `decoder_input_ids` have to be input (see
    `past_key_values`).

    To know more on how to prepare `decoder_input_ids` for pretraining take a look at [Pix2StructText
    Training](./t5#training).
decoder_attention_mask (`torch.BoolTensor` of shape `(batch_size, target_sequence_length)`, *optional*):
    Default behavior: generate a tensor that ignores pad tokens in `decoder_input_ids`. Causal mask will also
    be used by default.
labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
    Labels for computing the masked language modeling loss for the decoder.

Example:

Inference:

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

>>> processor = AutoProcessor.from_pretrained("google/pix2struct-textcaps-base")
>>> model = Pix2StructForConditionalGeneration.from_pretrained("google/pix2struct-textcaps-base")

>>> url = "https://www.ilankelman.org/stopsigns/australia.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))

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

>>> # autoregressive generation
>>> generated_ids = model.generate(**inputs, max_new_tokens=50)
>>> generated_text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
>>> print(generated_text)
A stop sign is on a street corner.

>>> # conditional generation
>>> text = "A picture of"
>>> inputs = processor(text=text, images=image, return_tensors="pt", add_special_tokens=False)

>>> generated_ids = model.generate(**inputs, max_new_tokens=50)
>>> generated_text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
>>> print(generated_text)
A picture of a stop sign with a red stop sign
```

Training:

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

>>> processor = AutoProcessor.from_pretrained("google/pix2struct-base")
>>> model = Pix2StructForConditionalGeneration.from_pretrained("google/pix2struct-base")

>>> url = "https://www.ilankelman.org/stopsigns/australia.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))
>>> text = "A stop sign is on the street corner."

>>> inputs = processor(images=image, return_tensors="pt")
>>> labels = processor(text=text, return_tensors="pt").input_ids

>>> # forward pass
>>> outputs = model(**inputs, labels=labels)
>>> loss = outputs.loss
>>> print(f"{loss.item():.5f}")
5.94282
```N)ra   r“   rÜ   rÝ   r4  rà   )rì   r“   r8  r›  rÐ  rÑ  rÊ  rÜ   rÝ   ré  r4  )	rõ  rö  r›  Údecoder_hidden_statesÚdecoder_attentionsr÷  Úencoder_last_hidden_staterÐ  Úencoder_attentions)rd   re   )rL   rû   rÊ  r4  r+  r±   r   Úlenr  Úner  r:  r  r   rõ  rö  r›  r:   râ   r÷  rá   )r'   ra   r“   rë   rí   r<  r›  ré  r  rÊ  rÜ   rÝ   r4  r…   r:   Údecoder_outputss   &&&&&&&&&&&&&,  r+   r<   Ú*Pix2StructForConditionalGeneration.forward–  sÂ  € ðN "+Ò!6‘I¸D¿K¹K×<SÑ<S×<]Ñ<]ˆ	Ø%0Ò%<‘kÀ$Ç+Á+×BYÑBYˆð Ò"Ø"Ÿl™lØ"3Ø-Ø"3Ø%9Ø'ð +ó ‰O÷ ¤¨O¼_×!MÒ!MÜ-Ø"1°!Õ"4Ü47¸Ó4HÈ1Ô4L˜o¨aÖ0ÐRVÜ14°_Ó1EÈÔ1I˜?¨1Ö-ÈtôˆOð (¨Õ*ˆàÒÐ"3Ò";Ð@UÒ@]à $× 1Ñ 1°&Ó 9Ðð *Ò5ñ 'à&×)Ñ)¨$¯+©+×*BÑ*BÓC×IÑIÓKð #ð ,-Ð" 4Ñ(ð Ÿ,™,Ø'Ø1Ø/Ø+Ø"/Ø#1ØØ/Ø!5ØØ#ð 'ó 
ˆ÷ Ø"Õ4Ð4äØ ×%Ñ%Ø"×)Ñ)Ø+×;Ñ;Ø"1×"?Ñ"?Ø.×9Ñ9Ø,×=Ñ=Ø&5×&GÑ&GØ"1×"?Ñ"?Ø.×9Ñ9ô

ð 
	
r-   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r¡   rN   )rO   rG   s   "€r+   rP   r  v  s   ø‡ ‚ ñ Ñò r-   )r  r+  r  )NNNNNNNNNNNN)r?   r@   rA   rB   rA  r!   r1  ræ  r  r  r   r<   r$  rC   rD   rE   rF   s   @@r+   r  r  v  sS   ù‡ € ð *€O÷	ó 	ò3ò:÷4ð 4ò;ð ÷b
ñ b
ó ðb
÷C … r-   r  )Nr‰   N)ré   r  r&  r  )Arn   rq  Úcollections.abcr   r#   r   Ú r   rø   Úactivationsr   Úcache_utilsr   r   r   Ú
generationr	   Úmasking_utilsr
   r   Úmodeling_layersr   Úmodeling_outputsr   r   r   r   r   Úmodeling_utilsr   r   Úprocessing_utilsr   Úutilsr   r   r   r   r   Úconfiguration_pix2structr   r   r   Ú
get_loggerr?   ri  rZ  r   rI   rp   rŸ   r»   rÐ   ré   r&  rú   rM  r�   rÿ   r¦  r¸  rÁ  r  r  Ú__all__rã   r-   r+   Ú<module>r4     sÊ  ðñ ã Ý $ã Ý å &Ý !ß CÑ CÝ )ß JÝ 9÷õ ÷ GÝ &÷õ ÷ eÑ dð 
×	Ò	˜HÓ	%€ô+˜"Ÿ)™)ô +ô2! §¡ô !ôH9) §	¡	ô 9)ôz˜"Ÿ)™)ô ô:"*Ð6ô "*ôJ"
˜bŸi™iô "
ðJ ôn! ó n!ó ðn!ðb ôd
Ð5ó d
ó ðd
ôP r§y¡yô ô:˜BŸI™Iô ÷"%ô@F8˜bŸi™iô F8ôT= r§y¡yô =ôB9¨¯	©	ô 9ô>M+Ð4ô M+ñ` ðôô
U
Ð3ó U
óð
U
ñp ðôô
~
Ð)BÀOó ~
óð
~
òB‚r-   