+
    œ°³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 ^RIHt ^RIHt ^R	IHtHtHt ^R
I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$H%t% ^RI&H't' ] PP                  ! ])4      t*]! RR7      ] ! R R]4      4       4       t+ ! R R]PX                  4      t- ! R R]PX                  4      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$]PX                  4      t4 ! R% R&]PX                  4      t5 ! R' R(]4      t6 ! R) R*]PX                  4      t7 ! R+ R,]PX                  4      t8] ! R- R.]4      4       t9 ! R/ R0]94      t:] ! R1 R2]94      4       t;] ! R3 R4]94      4       t<]! R5R7       ! R6 R7]94      4       t=]! R8R7       ! R9 R:]94      4       t>. R;Ot?R# )<zPyTorch Bros model.N)Ú	dataclass)Únn)ÚCrossEntropyLoss)Úinitialization)ÚACT2FN)Úcreate_bidirectional_mask)ÚGradientCheckpointingLayer)Ú"BaseModelOutputWithCrossAttentionsÚ,BaseModelOutputWithPoolingAndCrossAttentionsÚTokenClassifierOutput)ÚPreTrainedModel)ÚUnpack)Úapply_chunking_to_forward)ÚModelOutputÚTransformersKwargsÚauto_docstringÚcan_return_tupleÚlogging)Úmerge_with_config_defaults)ÚOutputRecorderÚcapture_outputs©Ú
BrosConfigz@
    Base class for outputs of token classification models.
    )Úcustom_introc                   óD   a € ] tR t^,t o RtRtRtRtRtRt	V 3R lt
RtV tR# )ÚBrosSpadeOutputaÖ  
loss (`torch.FloatTensor` of shape `(1,)`, *optional*, returned when `labels` is provided):
    Classification loss.
initial_token_logits (`torch.FloatTensor` of shape `(batch_size, sequence_length, config.num_labels)`):
    Classification scores for entity initial tokens (before SoftMax).
subsequent_token_logits (`torch.FloatTensor` of shape `(batch_size, sequence_length, sequence_length+1)`):
    Classification scores for entity sequence tokens (before SoftMax).
Nc                ó   <€ V ^8„  d   Qh/ S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[ P                  R,          ;R&   S[S[ P                  ,          R,          ;R&   S[S[ P                  ,          R,          ;R&   # )é   NÚlossÚinitial_token_logitsÚsubsequent_token_logitsÚhidden_statesÚ
attentions)ÚtorchÚFloatTensorÚtuple)ÚformatÚ__classdict__s   "€Úg/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/bros/modeling_bros.pyÚ__annotate__ÚBrosSpadeOutput.__annotate__,   s‡   ø‡ ‚ ñ  ×
Ñ
˜dÕ
"Ñ)ñ! ñ"  ×+Ñ+¨dÕ2Ñ9ñ# ñ$ #×.Ñ.°Õ5Ñ<ñ% ñ& ™×*Ñ*Õ+¨dÕ2Ñ9ñ' ñ( ‘e×'Ñ'Õ(¨4Õ/Ñ6ò) ó    © )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r    r!   r"   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r'   s   @r(   r   r   ,   s.   ø‡ € ñð &*€DØ59ÐØ8<ÐØ59€MØ26€J÷) ƒ r+   r   c                   óD   a a€ ] tR t^Ct oV 3R ltV3R lR ltRtVtV ;t# )ÚBrosPositionalEmbedding1Dc                óþ   <€ \         SV `  4        VP                  V n        ^R\        P                  ! RV P                  R4      V P                  ,          ,          ,          p\
        P                  ! V4      V n        R# )é   é'  ç        ç       @N)ÚsuperÚ__init__Údim_bbox_sinusoid_emb_1dr#   Úaranger   ÚBufferÚinv_freq)ÚselfÚconfigrA   Ú	__class__s   && €r(   r=   Ú"BrosPositionalEmbedding1D.__init__F   s^   ø€ Ü‰ÑÔà(.×(GÑ(GˆÔ%àØ”e—l’l 3¨×(EÑ(EÀsÓKÈd×NkÑNkÕkÕlõ
ˆô Ÿ	š	 (Ó+ˆŽr+   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   Úpos_seqÚreturn©r#   ÚTensor)r&   r'   s   "€r(   r)   Ú&BrosPositionalEmbedding1D.__annotate__P   s#   ø€ ÷ ñ ™uŸ|™|ð ±·±ñ r+   c                ó*  € VP                  4       pVw  r4pVP                  W4V^4      V P                  P                  ^^^V P                  ^,          4      ,          p\        P
                  ! VP                  4       VP                  4       .RR7      pV# )r8   ©Údiméÿÿÿÿ)ÚsizeÚviewrA   r>   r#   ÚcatÚsinÚcos)rB   rG   Úseq_sizeÚb1Úb2Úb3Úsinusoid_inpÚpos_embs   &&      r(   ÚforwardÚ!BrosPositionalEmbedding1D.forwardP   s{   € Ø—<‘<“>ˆØ‰
ˆ�Ø—|‘| B¨B°Ó2°T·]±]×5GÑ5GÈÈ1ÈaÐQU×QnÑQnÐrsÕQsÓ5tÕtˆÜ—)’)˜\×-Ñ-Ó/°×1AÑ1AÓ1CÐDÈ"ÔMˆØˆr+   )r>   rA   ©	r-   r.   r/   r0   r=   r[   r3   r4   Ú__classcell__©rD   r'   s   @@r(   r6   r6   C   s   ù‡ € õ,÷÷ ð r+   r6   c                   óD   a a€ ] tR t^Xt oV 3R ltV3R lR ltRtVtV ;t# )ÚBrosPositionalEmbedding2Dc                ó†   <€ \         SV `  4        VP                  V n        \        V4      V n        \        V4      V n        R # ©N)r<   r=   Údim_bboxr6   Ú	x_pos_embÚ	y_pos_emb©rB   rC   rD   s   &&€r(   r=   Ú"BrosPositionalEmbedding2D.__init__Y   s1   ø€ Ü‰ÑÔàŸ™ˆŒÜ2°6Ó:ˆŒÜ2°6Ó:ˆŽr+   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   ÚbboxrH   rI   )r&   r'   s   "€r(   r)   Ú&BrosPositionalEmbedding2D.__annotate__`   s#   ø€ ÷ ñ ™EŸL™Lð ©U¯\©\ñ r+   c                ó6  € . p\        V P                  4       Fe  pV^,          ^ 8X  d,   VP                  V P                  VRV3,          4      4       K<  VP                  V P	                  VRV3,          4      4       Kg  	  \
        P                  ! VRR7      pV# )r   .rM   rO   )Úrangerd   Úappendre   rf   r#   rR   )rB   rj   ÚstackÚiÚbbox_pos_embs   &&   r(   r[   Ú!BrosPositionalEmbedding2D.forward`   sw   € ØˆÜ�t—}‘}Ö%ˆAØ�1�u˜ŒzØ—‘˜TŸ^™^¨D°°a°­LÓ9Ö:à—‘˜TŸ^™^¨D°°a°­LÓ9Ö:ñ	 &ô
 —y’y ¨BÔ/ˆØÐr+   )rd   re   rf   r]   r_   s   @@r(   ra   ra   X   s   ù‡ € õ;÷÷ ð r+   ra   c                   óD   a a€ ] tR t^kt oV 3R ltV3R lR ltRtVtV ;t# )ÚBrosBboxEmbeddingsc                ó¨   <€ \         SV `  4        \        V4      V n        \        P
                  ! VP                  VP                  R R7      V n        R# )F)ÚbiasN)	r<   r=   ra   Úbbox_sinusoid_embr   ÚLinearÚdim_bbox_sinusoid_emb_2dÚdim_bbox_projectionÚbbox_projectionrg   s   &&€r(   r=   ÚBrosBboxEmbeddings.__init__l   s=   ø€ Ü‰ÑÔÜ!:¸6Ó!BˆÔÜ!Ÿyšy¨×)HÑ)HÈ&×JdÑJdÐkpÔqˆÖr+   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r   rj   rI   )r&   r'   s   "€r(   r)   ÚBrosBboxEmbeddings.__annotate__q   s   ø€ ÷ ñ ™EŸL™Lñ r+   c                óœ   € VP                  ^ ^4      pVR,          VR,          ,
          pV P                  V4      pV P                  V4      pV# )é    )NºNNNr�   r�   )r�   Nr�   r�   )Ú	transposerw   r{   )rB   rj   Úbbox_tÚbbox_posrq   s   &&   r(   r[   ÚBrosBboxEmbeddings.forwardq   sL   € Ø—‘  1Ó%ˆØ˜-Õ(¨6°-Õ+@Õ@ˆØ×-Ñ-¨hÓ7ˆØ×+Ñ+¨LÓ9ˆàÐr+   )r{   rw   r]   r_   s   @@r(   rt   rt   k   s   ù‡ € õr÷
÷ ð r+   rt   c                   óL   a a€ ] tR t^zt oRtV 3R ltRV3R lR lltRtVtV ;t	# )ÚBrosTextEmbeddingszGConstruct the embeddings from word, position and token_type embeddings.c                ót  <€ \         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
                  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      4      V n        \        P"                  ! \$        P,                  ! V P*                  P/                  4       \$        P0                  V P*                  P2                  R7      RR7      V n        R# ))Úpadding_idx©Úeps©ÚdtypeÚdeviceF)Ú
persistentN©r8   rO   )r<   r=   r   Ú	EmbeddingÚ
vocab_sizeÚhidden_sizeÚpad_token_idÚword_embeddingsÚmax_position_embeddingsÚposition_embeddingsÚtype_vocab_sizeÚtoken_type_embeddingsÚ	LayerNormÚlayer_norm_epsÚDropoutÚhidden_dropout_probÚdropoutr@   r#   r?   ÚexpandÚposition_idsÚzerosrP   ÚlongrŽ   Útoken_type_idsrg   s   &&€r(   r=   ÚBrosTextEmbeddings.__init__}   s  ø€ Ü‰ÑÔä!Ÿ|š|¨F×,=Ñ,=¸v×?QÑ?QÐ_e×_rÑ_rÔsˆÔÜ#%§<¢<°×0NÑ0NÐPV×PbÑPbÓ#cˆÔ Ü%'§\¢\°&×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ÓcˆÔÜ ŸišiÜ�KŠKØ×!Ñ!×&Ñ&Ó(Ü—j‘jØ×(Ñ(×/Ñ/ôð
 ô
ˆÖ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   Ú	input_idsNr£   r    Úinputs_embedsrH   rI   )r&   r'   s   "€r(   r)   ÚBrosTextEmbeddings.__annotate__‘   se   ø€ ÷ #ñ #á—<‘< $Õ&ð#ñ Ÿ™ tÕ+ð#ñ —l‘l TÕ)ð	#ñ
 —|‘| dÕ*ð#ñ 
�‰ñ#r+   c                óx  € Ve   VP                  4       pMVP                  4       R R pV^,          pVf   V P                  RR V13,          pVf�   \        V R4      '       d4   V P                  RR V13,          pVP	                  V^ ,          V4      pTpM;\
        P                  ! V\
        P                  V P                  P                  R7      pVf   V P                  V4      pV P                  V4      p	WI,           p
V P                  V4      pW«,          p
V P                  V
4      p
V P                  V
4      p
V
# )Nr�   r£   rŒ   rO   )rP   r    Úhasattrr£   rŸ   r#   r¡   r¢   rŽ   r•   r™   r—   rš   rž   )rB   r¦   r£   r    r§   Úinput_shapeÚ
seq_lengthÚbuffered_token_type_idsÚ buffered_token_type_ids_expandedr™   Ú
embeddingsr—   s   &&&&&       r(   r[   ÚBrosTextEmbeddings.forward‘   s,  € ð Ò Ø#Ÿ.™.Ó*‰Kà'×,Ñ,Ó.¨s°Ð3ˆKà  •^ˆ
àÒØ×,Ñ,¨Q°°°¨^Õ<ˆLàÒ!Ü�tÐ-×.Ò.Ø*.×*=Ñ*=¸aÀÀ*À¸nÕ*MÐ'Ø3J×3QÑ3QÐR]Ð^_ÕR`ÐblÓ3mÐ0Ø!A‘ä!&§¢¨[ÄÇ
Á
ÐSW×SdÑSd×SkÑSkÔ!l�àÒ Ø ×0Ñ0°Ó;ˆMØ $× :Ñ :¸>Ó JÐØ"Õ:ˆ
à"×6Ñ6°|ÓDÐØÕ)ˆ
à—^‘^ JÓ/ˆ
Ø—\‘\ *Ó-ˆ
ØÐr+   )rš   rž   r—   r    r™   r£   r•   )NNNN)
r-   r.   r/   r0   r1   r=   r[   r3   r4   r^   r_   s   @@r(   r‡   r‡   z   s   ù‡ € ÙQõ
÷(#÷ #ò #r+   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# )ÚBrosSelfAttentionc                ó   <€ \         SV `  4        VP                  VP                  ,          ^ 8w  d9   \	        VR4      '       g'   \        RVP                   RVP                   R24      h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        R# )r€   Úembedding_sizezThe hidden size (z6) is not a multiple of the number of attention heads (Ú)N)r<   r=   r“   Únum_attention_headsrª   Ú
ValueErrorÚintÚattention_head_sizeÚall_head_sizer   rx   ÚqueryÚkeyÚvaluerœ   Úattention_probs_dropout_probrž   Ú
is_decoderrg   s   &&€r(   r=   ÚBrosSelfAttention.__init__¸   s,  ø€ Ü‰ÑÔØ×Ñ × :Ñ :Õ:¸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ˆŒà ×+Ñ+ˆŽr+   c                óð   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[S[ P                  ,          /# ©r   r!   rq   Úattention_maskNÚencoder_hidden_statesÚencoder_attention_maskrH   )r#   rJ   r%   )r&   r'   s   "€r(   r)   ÚBrosSelfAttention.__annotate__Ì   ss   ø€ ÷ 5.ñ 5.á—|‘|ð5.ñ —l‘lð5.ñ Ÿ™ tÕ+ð	5.ñ
  %Ÿ|™|¨dÕ2ð5.ñ !&§¡¨tÕ 3ð5.ñ 
‰u�|‰|Õ	ñ5.r+   c                óò  € VP                   ^ ,          RV P                  V P                  3pV P                  V4      P	                  V4      P                  ^^4      pVRJpV'       dd   V P                  V4      P	                  V4      P                  ^^4      p	V P                  V4      P	                  V4      P                  ^^4      p
TpM`V P                  V4      P	                  V4      P                  ^^4      p	V P                  V4      P	                  V4      P                  ^^4      p
\        P                  ! WyP                  RR4      4      pVP                   w  rÍrïVP	                  WîWÏ4      pVP                  . RO4      p\        P                  ! RWr34      pVV,           pV\        P                  ! V P                  4      ,          pVe	   W³,           p\        P                  ! RR7      ! V4      pV P!                  V4      p\        P                  ! VV
4      pVP                  ^ ^^^4      P#                  4       pVP%                  4       RR V P&                  3,           pVP                  ! V!  pVV3# )r€   Nzbnid,bijd->bnijrM   rO   éþÿÿÿ)r   r€   r8   é   )Úshaper¶   r¹   r»   rQ   r‚   r¼   r½   r#   ÚmatmulÚpermuteÚeinsumÚmathÚsqrtr   ÚSoftmaxrž   Ú
contiguousrP   rº   )rB   r!   rq   rÃ   rÄ   rÅ   Úhidden_shapeÚquery_layerÚis_cross_attentionÚ	key_layerÚvalue_layerÚattention_scoresÚ
batch_sizeÚn_headr¬   Úd_headÚbbox_pos_scoresÚattention_probsÚcontext_layerÚnew_context_layer_shapes   &&&&&&              r(   r[   ÚBrosSelfAttention.forwardÌ   s5  € ð &×+Ñ+¨AÕ.°°D×4LÑ4LÈd×NfÑNfÐgˆØ—j‘j Ó/×4Ñ4°\ÓB×LÑLÈQÐPQÓRˆð
 3¸$Ð>ÐçØŸ™Ð!6Ó7×<Ñ<¸\ÓJ×TÑTÐUVÐXYÓZˆIØŸ*™*Ð%:Ó;×@Ñ@ÀÓN×XÑXÐYZÐ\]Ó^ˆKØ3‰NàŸ™ Ó/×4Ñ4°\ÓB×LÑLÈQÐPQÓRˆIØŸ*™* ]Ó3×8Ñ8¸ÓF×PÑPÐQRÐTUÓVˆKô !Ÿ<š<¨×5HÑ5HÈÈRÓ5PÓQÐð 2=×1BÑ1BÑ.ˆ
˜JØ#×(Ñ(¨ÀÓTˆØ#×+Ñ+ªLÓ9ˆÜŸ,š,Ð'8¸;Ð:UÓVˆà+¨oÕ=Ðà+¬d¯iªi¸×8PÑ8PÓ.QÕQÐØÒ%à/Õ@Ðô Ÿ*š*¨Õ,Ð-=Ó>ˆð Ÿ,™, Ó7ˆäŸš _°kÓBˆà%×-Ñ-¨a°°A°qÓ9×DÑDÓFˆØ"/×"4Ñ"4Ó"6°s¸Ð";¸t×?QÑ?QÐ>SÕ"SÐØ%×*Ò*Ð,CÑDˆà˜oÐ-Ð-r+   )rº   r¹   rž   r¿   r¼   r¶   r»   r½   ©NNNr]   r_   s   @@r(   r²   r²   ·   s   ù‡ € õ,÷(5.÷ 5.ò 5.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# )ÚBrosSelfOutputi  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Š   N)r<   r=   r   rx   r“   Údenserš   r›   rœ   r�   rž   rg   s   &&€r(   r=   ÚBrosSelfOutput.__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_tensorrH   rI   )r&   r'   s   "€r(   r)   ÚBrosSelfOutput.__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# rc   ©rå   rž   rš   ©rB   r!   ré   s   &&&r(   r[   ÚBrosSelfOutput.forward  ó5   € ØŸ
™
 =Ó1ˆØŸ™ ]Ó3ˆØŸ™ }Õ'CÓDˆØÐr+   ©rš   rå   rž   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# )ÚBrosAttentioni  c                ód   <€ \         SV `  4        \        V4      V n        \	        V4      V n        R # rc   )r<   r=   r²   rB   râ   Úoutputrg   s   &&€r(   r=   ÚBrosAttention.__init__  s&   ø€ Ü‰ÑÔÜ% fÓ-ˆŒ	Ü$ VÓ,ˆŽr+   c                óà   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  /# rÂ   rI   )r&   r'   s   "€r(   r)   ÚBrosAttention.__annotate__  sn   ø€ ÷ ñ á—|‘|ðñ —l‘lðñ Ÿ™ tÕ+ð	ñ
  %Ÿ|™|¨dÕ2ðñ !&§¡¨tÕ 3ðñ 
�‰ñr+   c                ó\   € TpV P                  VVVVVR 7      w  rV P                  W4      pV# ))rq   rÃ   rÄ   rÅ   )rB   rö   )rB   r!   rq   rÃ   rÄ   rÅ   ÚresidualÚ_s   &&&&&&  r(   r[   ÚBrosAttention.forward  sD   € ð !ˆØŸ9™9ØØ%Ø)Ø"7Ø#9ð %ó 
Ñˆð Ÿ™ MÓ<ˆØÐr+   )rö   rB   rà   r]   r_   s   @@r(   rô   rô     s   ù‡ € õ-÷
÷ ò 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# )ÚBrosIntermediatei.  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 # rc   )r<   r=   r   rx   r“   Úintermediate_sizerå   Ú
isinstanceÚ
hidden_actÚstrr   Úintermediate_act_fnrg   s   &&€r(   r=   ÚBrosIntermediate.__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!   rH   rI   )r&   r'   s   "€r(   r)   ÚBrosIntermediate.__annotate__7  s#   ø€ ÷ ñ ¡U§\¡\ð ±e·l±lñ r+   c                óJ   € V P                  V4      pV P                  V4      pV# rc   ©rå   r  )rB   r!   s   &&r(   r[   ÚBrosIntermediate.forward7  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# )Ú
BrosOutputi=  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ä   )r<   r=   r   rx   r  r“   rå   rš   r›   rœ   r�   rž   rg   s   &&€r(   r=   ÚBrosOutput.__init__>  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è   rI   )r&   r'   s   "€r(   r)   ÚBrosOutput.__annotate__D  rë   r+   c                óx   € V P                  V4      pV P                  V4      pV P                  W,           4      pV# rc   rí   rî   s   &&&r(   r[   ÚBrosOutput.forwardD  rð   r+   rñ   r]   r_   s   @@r(   r  r  =  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	# )Ú	BrosLayeriK  c                ó|  <€ \         SV `  4        VP                  V n        ^V n        \	        V4      V n        VP                  V n        VP                  V n        V P                  '       d1   V P                  '       g   \        V  R24      h\	        V4      V n	        \        V4      V n        \        V4      V n        R# )r8   z> should be used as a decoder model if cross attention is addedN)r<   r=   Úchunk_size_feed_forwardÚseq_len_dimrô   Ú	attentionr¿   Úadd_cross_attentionÚ	ExceptionÚcrossattentionrÿ   Úintermediater  rö   rg   s   &&€r(   r=   ÚBrosLayer.__init__L  s™   ø€ Ü‰ÑÔØ'-×'EÑ'EˆÔ$ØˆÔÜ& vÓ.ˆŒØ ×+Ñ+ˆŒØ#)×#=Ñ#=ˆÔ Ø×#×#Ð#Ø—?—?�?Ü 4 &Ð(fÐ gÓhÐhÜ"/°Ó"7ˆDÔÜ,¨VÓ4ˆÔÜ  Ó(ˆŽr+   c                óö   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[S[,          RS[ P                  /# ©	r   r!   rq   rÃ   NrÄ   rÅ   ÚkwargsrH   )r#   rJ   r$   r   r   )r&   r'   s   "€r(   r)   ÚBrosLayer.__annotate__Z  s„   ø€ ÷ $ñ $á—|‘|ð$ñ —l‘lð$ñ ×)Ñ)¨DÕ0ð	$ñ
  %×0Ñ0°4Õ7ð$ñ !&× 1Ñ 1°DÕ 8ð$ñ Ñ+Õ,ð$ñ 
�‰ñ$r+   c           	     ó*  € V P                  VVVR 7      pV P                  '       dA   Ve=   \        V R4      '       d   \        RV  R24      hV P                  ! V3RVRVRV/VB w  r\        V P                  V P                  V P                  V4      pV# ))rq   rÃ   r  z'If `encoder_hidden_states` are passed, z` has to be instantiated with cross-attention layers by setting `config.add_cross_attention=True`rÃ   rÄ   rÅ   )	r  r¿   rª   r  r  r   Úfeed_forward_chunkr  r  )rB   r!   rq   rÃ   rÄ   rÅ   r"  rü   s   &&&&&&, r(   r[   ÚBrosLayer.forwardZ  sÐ   € ð Ÿ™ØØ%Ø)ð 'ó 
ˆð �?�?ˆ?Ð4Ò@Ü�tÐ-×.Ò.ÜØ=¸d¸Vð  Ddð  eóð ð  $×2Ò2Øñ à-ð ð '<ð ð (>ð	 ð
 ñ ÑˆMô 2Ø×#Ñ#Ø×(Ñ(Ø×ÑØó	
ˆð Ðr+   c                óJ   € V P                  V4      pV P                  W!4      pV# rc   )r  rö   )rB   Úattention_outputÚintermediate_outputÚlayer_outputs   &&  r(   r%  ÚBrosLayer.feed_forward_chunk€  s)   € Ø"×/Ñ/Ð0@ÓAÐØ—{‘{Ð#6ÓIˆØÐr+   )r  r  r  r  r  r¿   rö   r  rà   )
r-   r.   r/   r0   r=   r[   r%  r3   r4   r^   r_   s   @@r(   r  r  K  s   ù‡ € õ)÷$ò $÷Lò 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# )Ú
BrosPooleri‡  c                ó¸   <€ \         SV `  4        \        P                  ! VP                  VP                  4      V n        \        P                  ! 4       V n        R # rc   )r<   r=   r   rx   r“   rå   ÚTanhÚ
activationrg   s   &&€r(   r=   ÚBrosPooler.__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  rI   )r&   r'   s   "€r(   r)   ÚBrosPooler.__annotate__�  s#   ø€ ÷ ñ ¡U§\¡\ð ±e·l±lñ r+   c                ó\   € VR,          pV P                  V4      pV P                  V4      pV# )r�   )r�   r€   )rå   r0  )rB   r!   Úfirst_token_tensorÚpooled_outputs   &&  r(   r[   ÚBrosPooler.forward�  s2   € ð +¨4Õ0ÐØŸ
™
Ð#5Ó6ˆØŸ™¨Ó6ˆØÐr+   )r0  rå   r]   r_   s   @@r(   r-  r-  ‡  s   ù‡ € õ$÷
÷ ð 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# )ÚBrosRelationExtractori–  c                ón  <€ \         SV `  4        VP                  V n        VP                  V n        VP                  V n        VP                  V n        \        P                  ! V P                  4      V n	        \        P                  ! V P                  V P                  V P
                  ,          4      V n        \        P                  ! V P                  V P                  V P
                  ,          4      V n        \        P                  ! \        P                  ! ^V P                  4      4      V n        R# )r8   N)r<   r=   Ún_relationsr“   Úbackbone_hidden_sizeÚhead_hidden_sizeÚclassifier_dropout_probr   rœ   Údroprx   r»   r¼   Ú	Parameterr#   r¡   Ú
dummy_noderg   s   &&€r(   r=   ÚBrosRelationExtractor.__init__—  sÏ   ø€ Ü‰ÑÔØ!×-Ñ-ˆÔØ$*×$6Ñ$6ˆÔ!Ø &× 2Ñ 2ˆÔØ'-×'EÑ'EˆÔ$ä—J’J˜t×;Ñ;Ó<ˆŒ	Ü—Y’Y˜t×8Ñ8¸$×:JÑ:JÈT×MbÑMbÕ:bÓcˆŒ
ä—9’9˜T×6Ñ6¸×8HÑ8HÈ4×K`ÑK`Õ8`ÓaˆŒäŸ,š,¤u§{¢{°1°d×6OÑ6OÓ'PÓQˆŽr+   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   rÓ   rÕ   rI   )r&   r'   s   "€r(   r)   Ú"BrosRelationExtractor.__annotate__¥  s#   ø€ ÷ ñ ¡5§<¡<ð ¹E¿L¹Lñ r+   c           	     ó¼  € V P                  V P                  V4      4      pV P                  P                  ^ 4      P	                  ^VP                  ^4      ^4      p\        P                  ! W#.^ R7      pV P                  V P                  V4      4      pVP                  VP                  ^ 4      VP                  ^4      V P                  V P                  4      pVP                  VP                  ^ 4      VP                  ^4      V P                  V P                  4      p\        P                  ! VP                  ^^^ ^4      VP                  ^^^^ 4      4      pV# )r€   ©Úaxis)r»   r?  rA  Ú	unsqueezeÚrepeatrP   r#   rR   r¼   rQ   r;  r=  rË   rÌ   )rB   rÓ   rÕ   Ú	dummy_vecÚrelation_scores   &&&  r(   r[   ÚBrosRelationExtractor.forward¥  s  € Ø—j‘j §¡¨;Ó!7Ó8ˆà—O‘O×-Ñ-¨aÓ0×7Ñ7¸¸9¿>¹>È!Ó;LÈaÓPˆ	Ü—I’I˜yÐ4¸1Ô=ˆ	Ø—H‘H˜TŸY™Y yÓ1Ó2ˆ	à!×&Ñ&Ø×Ñ˜QÓ ×!1Ñ!1°!Ó!4°d×6FÑ6FÈ×H]ÑH]ó
ˆð —N‘N 9§>¡>°!Ó#4°i·n±nÀQÓ6GÈ×IYÑIYÐ[_×[pÑ[pÓqˆ	äŸšØ×Ñ  1 a¨Ó+¨Y×->Ñ->¸qÀ!ÀQÈÓ-Jó
ˆð Ðr+   )r<  r>  r?  rA  r=  r¼   r;  r»   r]   r_   s   @@r(   r9  r9  –  s   ù‡ € õR÷÷ ð r+   r9  c                   óª   a a€ ] tR tRt oRtR]R]! ]^RR7      R]! ]^RR7      /t]	P                  ! 4       V3R	 lV 3R
 ll4       tV3R ltRtVtV ;t# )ÚBrosPreTrainedModeli¸  Úbrosr!   r"   r  )ÚindexÚ
layer_nameÚcross_attentionsr  c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r   Úmodule)r   ÚModule)r&   r'   s   "€r(   r)   Ú BrosPreTrainedModel.__annotate__Ã  s   ø€ ÷ 2ñ 2¡B§I¡Iñ 2r+   c                óè  <€ \         SV `  V4       V P                  P                  p\	        V\
        4      '       d%   \        P                  ! VP                  VR7       R# \	        V\        4      '       d‚   \        P                  ! VP                  \        P                  ! VP                  P                  R,          4      P                  R4      4       \        P                   ! VP"                  4       R# \	        V\$        4      '       de   ^R\        P                  ! RVP&                  R4      VP&                  ,          ,          ,          p\        P                  ! VP(                  V4       R# R# )zInitialize the weights)Ústdr9   r:   r;   NrO   r�   )r<   Ú_init_weightsrC   Úinitializer_ranger  r9  ÚinitÚnormal_rA  r‡   Úcopy_r    r#   r?   rÊ   rŸ   Úzeros_r£   r6   r>   rA   )rB   rT  rX  rA   rD   s   &&  €r(   rY  Ú!BrosPreTrainedModel._init_weightsÂ  sö   ø€ ô 	‰Ñ˜fÔ%Ø�k‰k×+Ñ+ˆÜ�fÔ3×4Ò4Ü�LŠL˜×*Ñ*°×4Ü˜Ô 2×3Ò3Ü�JŠJ�v×*Ñ*¬E¯LªL¸×9LÑ9L×9RÑ9RÐSUÕ9VÓ,W×,^Ñ,^Ð_fÓ,gÔhÜ�KŠK˜×-Ñ-Ö.Ü˜Ô 9×:Ò:ØØœ%Ÿ,š, s¨F×,KÑ,KÈSÓQÐTZ×TsÑTsÕsÕtõˆHô �JŠJ�v—‘¨Ö1ñ	 ;r+   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # )r   rC   r   )r&   r'   s   "€r(   r)   rV  ¸  s   ø‡ ‚ áÑò r+   r,   )r-   r.   r/   r0   Úbase_model_prefixr  r   r²   Ú_can_record_outputsr#   Úno_gradrY  r2   r3   r4   r^   r_   s   @@r(   rN  rN  ¸  s_   ù‡ € ð Ðà˜Ø‘nÐ%6¸aÈKÔXØ™NÐ+<ÀAÐRbÔcðÐð ‡]‚]ƒ_÷2ò 2ó ð2÷ … r+   rN  c                   ó\   a a€ ] tR tRt oV 3R lt]]RV3R lR ll4       4       tRtVt	V ;t
# )ÚBrosEncoderiÓ  c                óÞ   <€ \         SV `  V4       \        P                  ! \	        VP
                  4       Uu. uF  p\        V4      NK  	  up4      V n        V P                  4        R # u upi rc   )	r<   r=   r   Ú
ModuleListrm   Únum_hidden_layersr  ÚlayerÚ	post_init)rB   rC   rü   rD   s   && €r(   r=   ÚBrosEncoder.__init__Ô  sQ   ø€ Ü‰Ñ˜Ô Ü—]’]¼uÀV×E]ÑE]Ô?^Ó#_Ñ?^¸!¤I¨fÖ$5Ñ?^Ñ#_Ó`ˆŒ
Ø�‰Öùò $`s   ¸A*c                ó  <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[S[,          RS[S[ P                  ,          S[,          /# r!  )r#   rJ   r$   r   r   r%   r	   )r&   r'   s   "€r(   r)   ÚBrosEncoder.__annotate__Û  s�   ø€ ÷ 
ñ 
á—|‘|ð
ñ —l‘lð
ñ ×)Ñ)¨DÕ0ð	
ñ
  %×0Ñ0°4Õ7ð
ñ !&× 1Ñ 1°DÕ 8ð
ñ Ñ+Õ,ð
ñ 
‰u�|‰|Õ	ÑAÕ	Añ
r+   c                ób   € V P                    F  pV! V3R VRVRVRV/VB pK  	  \        VR7      # )rq   rÃ   rÄ   rÅ   )Úlast_hidden_state)ri  r	   )rB   r!   rq   rÃ   rÄ   rÅ   r"  Úlayer_modules   &&&&&&, r(   r[   ÚBrosEncoder.forwardÙ  sa   € ð !ŸJœJˆLÙ(Øñà)ðð  .ðð '<ð	ð
 (>ðð ñŠMñ 'ô 2Ø+ô
ð 	
r+   )ri  rà   )r-   r.   r/   r0   r=   r   r   r[   r3   r4   r^   r_   s   @@r(   re  re  Ó  s0   ù‡ € õð
  Ø÷
ñ 
ó ó  ÷
ð 
r+   re  c                   ól   a a€ ] tR tRt oRV 3R lltR tR t]]R	V3R lR ll4       4       t	Rt
VtV ;t# )
Ú	BrosModelió  c                óæ   <€ \         SV `  V4       Wn        \        V4      V n        \        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)r<   r=   rC   r‡   r¯   rt   Úbbox_embeddingsre  Úencoderr-  Úpoolerrj  )rB   rC   Úadd_pooling_layerrD   s   &&&€r(   r=   ÚBrosModel.__init__õ  sV   ø€ ô
 	‰Ñ˜Ô ØŒä,¨VÓ4ˆŒÜ1°&Ó9ˆÔÜ" 6Ó*ˆŒç,=”j Ô(À4ˆŒà�‰Ör+   c                ó.   € V P                   P                  # rc   ©r¯   r•   )rB   s   &r(   Úget_input_embeddingsÚBrosModel.get_input_embeddings  s   € Ø�‰×.Ñ.Ð.r+   c                ó&   € WP                   n        R # rc   r{  )rB   r½   s   &&r(   Úset_input_embeddingsÚBrosModel.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[ P                  R,          RS[ P                  R,          R	S[ P                  R,          R
S[S[,          RS[S[ P                  ,          S[,          /
# )r   r¦   Nrj   rÃ   r£   r    r§   rÄ   rÅ   r"  rH   )r#   rJ   r   r   r%   r
   )r&   r'   s   "€r(   r)   ÚBrosModel.__annotate__  sØ   ø€ ÷ [
ñ [
á—<‘< $Õ&ð[
ñ �l‰l˜TÕ!ð[
ñ Ÿ™ tÕ+ð	[
ñ
 Ÿ™ tÕ+ð[
ñ —l‘l TÕ)ð[
ñ —|‘| dÕ*ð[
ñ  %Ÿ|™|¨dÕ2ð[
ñ !&§¡¨tÕ 3ð[
ñ Ñ+Õ,ð[
ñ 
‰u�|‰|Õ	ÑKÕ	Kñ[
r+   c	                óè  € VRJ VRJ,          '       d   \        R4      hVf   \        R4      hV P                  VVVVR7      p
V
P                  RR pV
P                  pVf   \        P
                  ! W¼R7      p\        V P                  V
VR7      pVe   \        V P                  V
VVR7      pVP                  R,          ^8X  d   VRR. RO3,          pW P                  P                  ,          pV P                  V4      pV P                  ! V
3R	VR
VRVRV/V	B pV^ ,          pV P                  e   V P                  V4      MRp\        VVVP                  VP                  VP                  R7      # )aM  
bbox ('torch.FloatTensor' of shape '(batch_size, num_boxes, 4)'):
    Bounding box coordinates for each token in the input sequence. Each bounding box is a list of four values
    (x1, y1, x2, y2), where (x1, y1) is the top left corner, and (x2, y2) is the bottom right corner of the
    bounding box.

Examples:

```python
>>> import torch
>>> from transformers import BrosProcessor, BrosModel

>>> processor = BrosProcessor.from_pretrained("jinho8345/bros-base-uncased")

>>> model = BrosModel.from_pretrained("jinho8345/bros-base-uncased")

>>> encoding = processor("Hello, my dog is cute", add_special_tokens=False, return_tensors="pt")
>>> bbox = torch.tensor([[[0, 0, 1, 1]]]).repeat(1, encoding["input_ids"].shape[-1], 1)
>>> encoding["bbox"] = bbox

>>> outputs = model(**encoding)
>>> last_hidden_states = outputs.last_hidden_state
```Nz:You must specify exactly one of input_ids or inputs_embedszYou have to specify bbox)r¦   r    r£   r§   )rŽ   )rC   r§   rÃ   )rC   r§   rÃ   rÄ   r�   rq   rÃ   rÄ   rÅ   )ro  Úpooler_outputr!   r"   rR  rO   )r€   r8   r   r8   r   rÉ   r€   rÉ   )r·   r¯   rÊ   rŽ   r#   Úonesr   rC   Ú
bbox_scaleru  rv  rw  r
   r!   r"   rR  )rB   r¦   rj   rÃ   r£   r    r§   rÄ   rÅ   r"  Úembedding_outputr«   rŽ   Úscaled_bboxÚbbox_position_embeddingsÚencoder_outputsÚsequence_outputr6  s   &&&&&&&&&,        r(   r[   ÚBrosModel.forward  s   € ðJ ˜Ð -°tÐ";×<Ô<ÜÐYÓZÐZàŠ<ÜÐ7Ó8Ð8àŸ?™?ØØ%Ø)Ø'ð	 +ó 
Ðð '×,Ñ,¨S¨bÐ1ˆØ!×(Ñ(ˆàÒ!Ü"ŸZšZ¨ÔCˆNä2Ø—;‘;Ø*Ø)ô
ˆð "Ò-Ü%>Ø—{‘{Ø.Ø5Ø&;ô	&Ð"ð �:‰:�b�>˜QÔØ˜˜1Ò6Ð6Õ7ˆDØŸ[™[×3Ñ3Õ3ˆØ#'×#7Ñ#7¸Ó#DÐ à>B¿lºlØñ?
à1ð?
ð *ð?
ð #8ð	?
ð
 $:ð?
ð ñ?
ˆð *¨!Õ,ˆØ8<¿¹Ò8O˜Ÿ™ OÔ4ÐUYˆä;Ø-Ø'Ø)×7Ñ7Ø&×1Ñ1Ø,×=Ñ=ô
ð 	
r+   )ru  rC   r¯   rv  rw  )T©NNNNNNNN)r-   r.   r/   r0   r=   r|  r  r   r   r[   r3   r4   r^   r_   s   @@r(   rs  rs  ó  s>   ù‡ € ÷ò /ò0ð Ø÷[
ñ [
ó ó ÷[
ð [
r+   rs  c                   ób   a a€ ] tR tRt oR.tV 3R lt]]RV3R lR ll4       4       tRt	Vt
V ;t# )ÚBrosForTokenClassificationik  rw  c                ór  <€ \         SV `  V4       VP                  V n        \        V4      V n        \        VR 4      '       d   VP                  MVP                  p\        P                  ! V4      V n
        \        P                  ! VP                  VP                  4      V n        V P                  4        R# ©Úclassifier_dropoutN)r<   r=   Ú
num_labelsrs  rO  rª   r’  r�   r   rœ   rž   rx   r“   Ú
classifierrj  ©rB   rC   r’  rD   s   && €r(   r=   Ú#BrosForTokenClassification.__init__o  sˆ   ø€ Ü‰Ñ˜Ô Ø ×+Ñ+ˆŒä˜fÓ%ˆŒ	ä)0°Ð9M×)NÒ)NˆF×%Ò%ÐTZ×TnÑTnð 	ô —z’zÐ"4Ó5ˆŒÜŸ)š) F×$6Ñ$6¸×8IÑ8IÓJˆŒà�‰Ö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[ P                  R,          RS[ P                  R,          R	S[ P                  R,          R
S[S[,          RS[S[ P                  ,          S[,          /
# ©r   r¦   Nrj   rÃ   Úbbox_first_token_maskr£   r    r§   Úlabelsr"  rH   ©r#   rJ   r   r   r%   r   )r&   r'   s   "€r(   r)   Ú'BrosForTokenClassification.__annotate__~  sØ   ø€ ÷ F
ñ F
á—<‘< $Õ&ðF
ñ �l‰l˜TÕ!ðF
ñ Ÿ™ tÕ+ð	F
ñ
  %Ÿ|™|¨dÕ2ðF
ñ Ÿ™ tÕ+ðF
ñ —l‘l TÕ)ðF
ñ —|‘| dÕ*ðF
ñ —‘˜tÕ#ðF
ñ Ñ+Õ,ðF
ñ 
‰u�|‰|Õ	Ñ4Õ	4ñF
r+   c	                ó  € V P                   ! V3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RpVe“   \        4       pVeS   VP	                  R4      pV! VP	                  RV P
                  4      V,          VP	                  R4      V,          4      pM2V! VP	                  RV P
                  4      VP	                  R4      4      p\        VVV
P                  V
P                  R7      # )	aP  
bbox ('torch.FloatTensor' of shape '(batch_size, num_boxes, 4)'):
    Bounding box coordinates for each token in the input sequence. Each bounding box is a list of four values
    (x1, y1, x2, y2), where (x1, y1) is the top left corner, and (x2, y2) is the bottom right corner of the
    bounding box.
bbox_first_token_mask (`torch.FloatTensor` of shape `(batch_size, sequence_length)`, *optional*):
    Mask to indicate the first token of each bounding box. Mask values selected in `[0, 1]`:

    - 1 for tokens that are **not masked**,
    - 0 for tokens that are **masked**.

Examples:

```python
>>> import torch
>>> from transformers import BrosProcessor, BrosForTokenClassification

>>> processor = BrosProcessor.from_pretrained("jinho8345/bros-base-uncased")

>>> model = BrosForTokenClassification.from_pretrained("jinho8345/bros-base-uncased")

>>> encoding = processor("Hello, my dog is cute", add_special_tokens=False, return_tensors="pt")
>>> bbox = torch.tensor([[[0, 0, 1, 1]]]).repeat(1, encoding["input_ids"].shape[-1], 1)
>>> encoding["bbox"] = bbox

>>> outputs = model(**encoding)
```rj   rÃ   r£   r    r§   N©r   Úlogitsr!   r"   rO   )	rO  rž   r”  r   rQ   r“  r   r!   r"   )rB   r¦   rj   rÃ   r™  r£   r    r§   rš  r"  Úoutputsr‹  rŸ  r   Úloss_fcts   &&&&&&&&&,     r(   r[   Ú"BrosForTokenClassification.forward|  s'  € ðR AEÇ	Â	ØñA
àðA
ð *ðA
ð *ð	A
ð
 &ðA
ð (ðA
ð ñA
ˆð " !�*ˆàŸ,™, Ó7ˆØ—‘ Ó1ˆàˆØÒÜ'Ó)ˆHØ$Ò0Ø(=×(BÑ(BÀ2Ó(FÐ%ÙØ—K‘K  D§O¡OÓ4Ð5JÕKÈVÏ[É[ÐY[Ë_Ð]rÕMsó‘ñ   §¡¨B°·±Ó @À&Ç+Á+ÈbÃ/ÓR�ä$ØØØ!×/Ñ/Ø×)Ñ)ô	
ð 	
r+   )rO  r”  rž   r“  r�  ©r-   r.   r/   r0   Ú"_keys_to_ignore_on_load_unexpectedr=   r   r   r[   r3   r4   r^   r_   s   @@r(   r�  r�  k  s<   ù‡ € à*3¨Ð&õð Ø÷F
ñ F
ó ó ÷F
ð F
r+   r�  a  
    Bros Model with a token classification head on top (initial_token_layers and subsequent_token_layer on top of the
    hidden-states output) e.g. for Named-Entity-Recognition (NER) tasks. The initial_token_classifier is used to
    predict the first token of each entity, and the subsequent_token_classifier is used to predict the subsequent
    tokens within an entity. Compared to BrosForTokenClassification, this model is more robust to serialization errors
    since it predicts next token from one token.
    c                   ób   a a€ ] tR tRt oR.tV 3R lt]]RV3R lR ll4       4       tRt	Vt
V ;t# )Ú!BrosSpadeEEForTokenClassificationiÇ  rw  c           	     ó|  <€ \         SV `  V4       Wn        VP                  V n        VP                  V n        VP
                  V n        \        V4      V n        \        VR 4      '       d   VP                  MVP                  p\        P                  ! \        P                  ! V4      \        P                  ! VP
                  VP
                  4      \        P                  ! V4      \        P                  ! VP
                  VP                  4      4      V n        \#        V4      V n        V P'                  4        R# r‘  )r<   r=   rC   r“  r;  r“   r<  rs  rO  rª   r’  r�   r   Ú
Sequentialrœ   rx   Úinitial_token_classifierr9  Úsubsequent_token_classifierrj  r•  s   && €r(   r=   Ú*BrosSpadeEEForTokenClassification.__init__Ó  sé   ø€ Ü‰Ñ˜Ô ØŒØ ×+Ñ+ˆŒØ!×-Ñ-ˆÔØ$*×$6Ñ$6ˆÔ!ä˜fÓ%ˆŒ	ä)0°Ð9M×)NÒ)NˆF×%Ò%ÐTZ×TnÑTnð 	ô
 )+¯ªÜ�JŠJÐ)Ó*Ü�IŠI�f×(Ñ(¨&×*<Ñ*<Ó=Ü�JŠJÐ)Ó*Ü�IŠI�f×(Ñ(¨&×*;Ñ*;Ó<ó	)
ˆÔ%ô ,AÀÓ+HˆÔ(à�‰Ö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[ P                  R,          RS[ P                  R,          R	S[ P                  R,          R
S[ P                  R,          RS[S[,          RS[S[ P                  ,          S[,          /# )r   r¦   Nrj   rÃ   r™  r£   r    r§   Úinitial_token_labelsÚsubsequent_token_labelsr"  rH   )r#   rJ   r   r   r%   r   )r&   r'   s   "€r(   r)   Ú.BrosSpadeEEForTokenClassification.__annotate__î  së   ø€ ÷ h
ñ h
á—<‘< $Õ&ðh
ñ �l‰l˜TÕ!ðh
ñ Ÿ™ tÕ+ð	h
ñ
  %Ÿ|™|¨dÕ2ðh
ñ Ÿ™ tÕ+ðh
ñ —l‘l TÕ)ðh
ñ —|‘| dÕ*ðh
ñ $Ÿl™l¨TÕ1ðh
ñ "'§¡°Õ!4ðh
ñ Ñ+Õ,ðh
ñ 
‰u�|‰|Õ	™Õ	.ñh
r+   c
                ó¼  € V P                   ! RRVRVRVRVRVRV/V
B pV^ ,          pVP                  ^ ^4      P                  4       pV P                  V4      P                  ^ ^4      P                  4       pV P	                  WÌ4      P                  ^ 4      p^V,
          pVP                  w  ppVP                  p\        P                  ! V\        P                  ! V^.VP                  VR7      .^R7      P                  4       pVP                  VR,          \        P                  ! VP                  4      P                  4      p\        P                   ! VV^,           4      P#                  V\        P                  R
7      pVP                  VR,          \        P                  ! VP                  4      P                  4      pVP%                  R4      P                  4       pR	pVeÑ   V	eÍ   \'        4       pVP%                  R4      pVeC   VP%                  R4      pV! VP%                  RV P(                  4      V,          W„,          4      pM#V! VP%                  RV P(                  4      V4      pV	P%                  R4      p	V! VP%                  RV^,           4      V,          V	V,          4      pVV,           p\+        VVVVP,                  VP.                  R7      # )a†  
bbox ('torch.FloatTensor' of shape '(batch_size, num_boxes, 4)'):
    Bounding box coordinates for each token in the input sequence. Each bounding box is a list of four values
    (x1, y1, x2, y2), where (x1, y1) is the top left corner, and (x2, y2) is the bottom right corner of the
    bounding box.
bbox_first_token_mask (`torch.FloatTensor` of shape `(batch_size, sequence_length)`, *optional*):
    Mask to indicate the first token of each bounding box. Mask values selected in `[0, 1]`:

    - 1 for tokens that are **not masked**,
    - 0 for tokens that are **masked**.
initial_token_labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
    Labels for the initial token classification.
subsequent_token_labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
    Labels for the subsequent token classification.

Examples:

```python
>>> import torch
>>> from transformers import BrosProcessor, BrosSpadeEEForTokenClassification

>>> processor = BrosProcessor.from_pretrained("jinho8345/bros-base-uncased")

>>> model = BrosSpadeEEForTokenClassification.from_pretrained("jinho8345/bros-base-uncased")

>>> encoding = processor("Hello, my dog is cute", add_special_tokens=False, return_tensors="pt")
>>> bbox = torch.tensor([[[0, 0, 1, 1]]]).repeat(1, encoding["input_ids"].shape[-1], 1)
>>> encoding["bbox"] = bbox

>>> outputs = model(**encoding)
```r¦   rj   rÃ   r£   r    r§   rŒ   rF  N©rŽ   r�   )r   r   r    r!   r"   r,   ©r�   Nr�   ©Nr�   r�   rO   )rO  r‚   rÑ   r©  rª  ÚsqueezerÊ   rŽ   r#   rR   r¡   r�   ÚboolÚmasked_fillÚfinfoÚminÚeyeÚtorQ   r   r“  r   r!   r"   )rB   r¦   rj   rÃ   r™  r£   r    r§   r­  r®  r"  r   Úlast_hidden_statesr   r    Úinv_attention_maskrØ   Úmax_seq_lengthrŽ   Úinvalid_token_maskÚself_token_maskÚsubsequent_token_maskr   r¡  Úinitial_token_lossÚsubsequent_token_losss   &&&&&&&&&&,               r(   r[   Ú)BrosSpadeEEForTokenClassification.forwardì  sç  € ð\ AEÇ	Â	ñ A
ØðA
àðA
ð *ðA
ð *ð	A
ð
 &ðA
ð (ðA
ð ñA
ˆð % Q�ZÐØ/×9Ñ9¸!¸QÓ?×JÑJÓLÐØ#×<Ñ<Ð=OÓP×ZÑZÐ[\Ð^_Ó`×kÑkÓmÐØ"&×"BÑ"BÐCUÓ"j×"rÑ"rÐstÓ"uÐð  Õ/ÐØ%7×%=Ñ%=Ñ"ˆ
�NØ#×*Ñ*ˆÜ"ŸYšYØ¤§¢¨j¸!¨_ÐDV×D\ÑD\ÐekÔ!lÐmÐtuô
ç
‰$‹&ð 	ð #:×"EÑ"EØ˜zÕ*¬E¯KªKÐ8O×8UÑ8UÓ,V×,ZÑ,Zó#
Ðô  Ÿ)š) N°NÀQÕ4FÓG×JÑJÐRXÔ`e×`jÑ`jÐJÓkˆØ"9×"EÑ"EØ˜JÕ'¬¯ªÐ5L×5RÑ5RÓ)S×)WÑ)Wó#
Ðð !/× 3Ñ 3°BÓ 7× <Ñ <Ó >ÐàˆØÒ+Ð0GÒ0SÜ'Ó)ˆHð $8×#<Ñ#<¸RÓ#@Ð Ø$Ò0Ø(=×(BÑ(BÀ2Ó(FÐ%Ù%-Ø(×-Ñ-¨b°$·/±/ÓBÐCXÕYØ(Õ?ó&Ñ"ñ
 &.Ð.B×.GÑ.GÈÈDÏOÉOÓ.\Ð^rÓ%sÐ"à&=×&BÑ&BÀ2Ó&FÐ#Ù$,Ø'×,Ñ,¨R°À!Õ1CÓDÐEZÕ[Ø'Ð(=Õ>ó%Ð!ð
 &Ð(=Õ=ˆDäØØ!5Ø$;Ø!×/Ñ/Ø×)Ñ)ô
ð 	
r+   )r<  rO  rC   r©  r;  r“  rª  )	NNNNNNNNNr£  r_   s   @@r(   r¦  r¦  Ç  s>   ù‡ € ð +4¨Ð&õð2 Ø÷h
ñ h
ó ó ÷h
ð h
r+   r¦  zì
    Bros Model with a token classification head on top (a entity_linker layer on top of the hidden-states output) e.g.
    for Entity-Linking. The entity_linker is used to predict intra-entity links (one entity to another entity).
    c                   ób   a a€ ] tR tRt oR.tV 3R lt]]RV3R lR ll4       4       tRt	Vt
V ;t# )Ú!BrosSpadeELForTokenClassificationiY  rw  c                óL  <€ \         SV `  V4       Wn        VP                  V n        VP                  V n        VP
                  V n        \        V4      V n        \        VR 4      '       d   VP                  MVP                   \        V4      V n        V P                  4        R# r‘  )r<   r=   rC   r“  r;  r“   r<  rs  rO  rª   r’  r�   r9  Úentity_linkerrj  rg   s   &&€r(   r=   Ú*BrosSpadeELForTokenClassification.__init__b  s�   ø€ Ü‰Ñ˜Ô ØŒØ ×+Ñ+ˆŒØ!×-Ñ-ˆÔØ$*×$6Ñ$6ˆÔ!ä˜fÓ%ˆŒ	Ü&-¨fÐ6J×&KÒ&Kˆ×	"Ò	"ÐQW×QkÑQkøä2°6Ó:ˆÔà�‰Ö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[ P                  R,          RS[ P                  R,          R	S[ P                  R,          R
S[S[,          RS[S[ P                  ,          S[,          /
# r˜  r›  )r&   r'   s   "€r(   r)   Ú.BrosSpadeELForTokenClassification.__annotate__r  sØ   ø€ ÷ Q
ñ Q
á—<‘< $Õ&ðQ
ñ �l‰l˜TÕ!ðQ
ñ Ÿ™ tÕ+ð	Q
ñ
  %Ÿ|™|¨dÕ2ðQ
ñ Ÿ™ tÕ+ðQ
ñ —l‘l TÕ)ðQ
ñ —|‘| dÕ*ðQ
ñ —‘˜tÕ#ðQ
ñ Ñ+Õ,ðQ
ñ 
‰u�|‰|Õ	Ñ4Õ	4ñQ
r+   c	                ó  € V P                   ! RRVRVRVRVRVRV/V	B p
V
^ ,          pVP                  ^ ^4      P                  4       pV P                  W»4      P	                  ^ 4      pRpVEeu   \        4       pVP                  w  ppVP                  p\        P                  ! VV^,           4      P                  V\        P                  R7      pVP                  R4      p\        P                  ! V( \        P                  ! V^.\        P                  VR	7      .^R
7      pVP                  VR,          \        P                   ! VP"                  4      P$                  4      pVP                  VR,          \        P                   ! VP"                  4      P$                  4      pV! VP                  RV^,           4      V,          VP                  R4      V,          4      p\'        VVV
P(                  V
P*                  R7      # )a^  
bbox ('torch.FloatTensor' of shape '(batch_size, num_boxes, 4)'):
    Bounding box coordinates for each token in the input sequence. Each bounding box is a list of four values
    (x1, y1, x2, y2), where (x1, y1) is the top left corner, and (x2, y2) is the bottom right corner of the
    bounding box.
bbox_first_token_mask (`torch.FloatTensor` of shape `(batch_size, sequence_length)`, *optional*):
    Mask to indicate the first token of each bounding box. Mask values selected in `[0, 1]`:

    - 1 for tokens that are **not masked**,
    - 0 for tokens that are **masked**.

Examples:

```python
>>> import torch
>>> from transformers import BrosProcessor, BrosSpadeELForTokenClassification

>>> processor = BrosProcessor.from_pretrained("jinho8345/bros-base-uncased")

>>> model = BrosSpadeELForTokenClassification.from_pretrained("jinho8345/bros-base-uncased")

>>> encoding = processor("Hello, my dog is cute", add_special_tokens=False, return_tensors="pt")
>>> bbox = torch.tensor([[[0, 0, 1, 1]]]).repeat(1, encoding["input_ids"].shape[-1], 1)
>>> encoding["bbox"] = bbox

>>> outputs = model(**encoding)
```r¦   rj   rÃ   r£   r    r§   Nr±  rŒ   rF  rž  r,   rO   r²  r³  )rO  r‚   rÑ   rÇ  r´  r   rÊ   rŽ   r#   r¹  rº  rµ  rQ   rR   r¡   r¶  r·  r�   r¸  r   r!   r"   )rB   r¦   rj   rÃ   r™  r£   r    r§   rš  r"  r   r»  rŸ  r   r¡  rØ   r½  rŽ   r¿  Úmasks   &&&&&&&&&,          r(   r[   Ú)BrosSpadeELForTokenClassification.forwardp  sø  € ðR AEÇ	Â	ñ A
ØðA
àðA
ð *ðA
ð *ð	A
ð
 &ðA
ð (ðA
ð ñA
ˆð % Q�ZÐØ/×9Ñ9¸!¸QÓ?×JÑJÓLÐà×#Ñ#Ð$6ÓK×SÑSÐTUÓVˆàˆØÓÜ'Ó)ˆHà)7×)=Ñ)=Ñ&ˆJ˜Ø#×*Ñ*ˆFä#Ÿiši¨¸ÈÕ8JÓK×NÑNÐV\Ôdi×dnÑdnÐNÓoˆOà(×-Ñ-¨bÓ1ˆDÜ$)§I¢Ià*Ð*Ü—K’K ¨Q ´u·z±zÈ&ÔQðð ô%Ð!ð ×'Ñ'Ð(=¸jÕ(IÌ5Ï;Ê;ÐW]×WcÑWcÓKd×KhÑKhÓiˆFØ×'Ñ'¨¸
Õ(CÄUÇ[Â[ÐQW×Q]ÑQ]ÓE^×EbÑEbÓcˆFá˜FŸK™K¨¨N¸QÕ,>Ó?ÀÕEÀvÇ{Á{ÐSUÃÐW[ÕG\Ó]ˆDä$ØØØ!×/Ñ/Ø×)Ñ)ô	
ð 	
r+   )r<  rO  rC   rÇ  r;  r“  r�  r£  r_   s   @@r(   rÅ  rÅ  Y  s>   ù‡ € ð +4¨Ð&õð Ø÷Q
ñ Q
ó ó ÷Q
ð Q
r+   rÅ  )rN  rs  r�  r¦  rÅ  )@r1   rÎ   Údataclassesr   r#   r   Útorch.nnr   Ú r   r[  Úactivationsr   Úmasking_utilsr   Úmodeling_layersr   Úmodeling_outputsr	   r
   r   Úmodeling_utilsr   Úprocessing_utilsr   Úpytorch_utilsr   Úutilsr   r   r   r   r   Úutils.genericr   Úutils.output_capturingr   r   Úconfiguration_brosr   Ú
get_loggerr-   Úloggerr   rU  r6   ra   rt   r‡   r²   râ   rô   rÿ   r  r  r-  r9  rN  re  rs  r�  r¦  rÅ  Ú__all__r,   r+   r(   Ú<module>rß     s  ðñ ã Ý !ã Ý Ý %å &Ý !Ý 6Ý 9÷ñ õ
 .Ý &Ý 6ß _Õ _Ý 7ß EÝ *ð 
×	Ò	˜HÓ	%€ñ ðôð
 ô7�kó 7ó óð7ô" §	¡	ô ô* §	¡	ô ô&˜Ÿ™ô ô:˜Ÿ™ô :ôzJ.˜Ÿ	™	ô J.ô\�R—Y‘Yô ô�B—I‘Iô ô6�r—y‘yô ô�—‘ô ô8Ð*ô 8ôx�—‘ô ô˜BŸI™Iô ðD ô2˜/ó 2ó ð2ô4
Ð%ô 
ð@ ôt
Ð#ó t
ó ðt
ðn ôX
Ð!4ó X
ó ðX
ñv ðôôF
Ð(;ó F
óðF
ñR ðôôd
Ð(;ó d
óðd
òN‚r+   