+
    œ°³j¾}  ã                   óV  € ^ RI Ht ^ RIHt ^ RIt^ RIHt ^RIHt ^RIH	t	H
t
 ^RIHtHt ^RIHt ^R	IHt ^R
IHtHt ^RIHtHt ^RIHtHt ^RIHt ^RIHtHtH t H!t! ^RI"H#t# ^RI$H%t%H&t& ^RI'H(t( ^RI)H*t* ^RI+H,t,H-t-  ! R R]P\                  4      t/ ! R R]P\                  4      t0R t1]! R4      R7R l4       t2R R lt3R8R R llt4]! ]24       ! R R ]P\                  4      4       t5 ! R! R"]P\                  4      t6 ! R# R$]P\                  4      t7 ! R% R&]4      t8]  ! R' R(]4      4       t9] ! R)R*7      ] ! R+ R,]4      4       4       t:] ! R-R*7       ! R. R/]94      4       t;] ! R0 R1]4      4       t< ! R2 R3]Pz                  4      t>] ! R4R*7       ! R5 R6]9]
4      4       t?. R9Ot@R# ):é    )ÚCallable)Ú	dataclassN)Únn)ÚACT2FN)ÚCompileConfigÚGenerationMixin)Úuse_kernel_forward_from_hubÚuse_kernelized_func)Úcreate_bidirectional_mask)ÚGradientCheckpointingLayer)ÚBaseModelOutputWithPoolingÚCausalLMOutput)ÚROPE_INIT_FUNCTIONSÚdynamic_rope_update)ÚALL_ATTENTION_FUNCTIONSÚPreTrainedModel)ÚUnpack)ÚModelOutputÚTransformersKwargsÚauto_docstringÚcan_return_tuple)Údeprecate_kwarg)Úmaybe_autocastÚmerge_with_config_defaults)Úcapture_outputs)Ú	AutoModel)ÚLasrCTCConfigÚLasrEncoderConfigc                   óP   a a€ ] tR t^,t oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚLasrEncoderSubsamplingc                ó    <€ V ^8„  d   QhRS[ /# ©é   Úconfig©r   )ÚformatÚ__classdict__s   "€Úg/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/lasr/modeling_lasr.pyÚ__annotate__Ú#LasrEncoderSubsampling.__annotate__-   s   ø€ ÷  ñ  Ñ0ñ  ó    c                ó4  <€ \         SV `  4        \        P                  ! VP                  VP
                  4      V n        \        P                  ! VP
                  VP
                  VP                  VP                  R 7      V n
        \        P                  ! VP
                  VP                  VP                  VP                  R 7      V n        \        P                  ! VP                  VP
                  4      V n        \        P                  ! 4       V n        R# ))Úkernel_sizeÚstrideN)ÚsuperÚ__init__r   ÚLinearÚnum_mel_binsÚhidden_sizeÚdense_0ÚConv1dÚsubsampling_conv_kernel_sizeÚsubsampling_conv_strideÚconv_0Úsubsampling_conv_channelsÚconv_1Údense_1ÚReLUÚact_fn©Úselfr$   Ú	__class__s   &&€r(   r0   ÚLasrEncoderSubsampling.__init__-   sÃ   ø€ Ü‰ÑÔÜ—y’y ×!4Ñ!4°f×6HÑ6HÓIˆŒÜ—i’iØ×ÑØ×ÑØ×;Ñ;Ø×1Ñ1ô	
ˆŒô —i’iØ×ÑØ×,Ñ,Ø×;Ñ;Ø×1Ñ1ô	
ˆŒô —y’y ×!AÑ!AÀ6×CUÑCUÓVˆŒÜ—g’g“iˆŽr+   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r#   Úinput_featuresÚreturn©ÚtorchÚTensor)r&   r'   s   "€r(   r)   r*   ?   s#   ø€ ÷ +ñ +¡e§l¡lð +±u·|±|ñ +r+   c                ó,  € V P                  V P                  V4      4      pVP                  ^^4      pV P                  V P                  V4      4      pV P                  V P	                  V4      4      pVP                  ^^4      pV P                  V4      # ©é   )r=   r4   Ú	transposer8   r:   r;   )r?   rC   Úhidden_statess   && r(   ÚforwardÚLasrEncoderSubsampling.forward?   sz   € ØŸ™ D§L¡L°Ó$@ÓAˆØ%×/Ñ/°°1Ó5ˆØŸ™ D§K¡K°Ó$>Ó?ˆØŸ™ D§K¡K°Ó$>Ó?ˆØ%×/Ñ/°°1Ó5ˆØ�|‰|˜MÓ*Ð*r+   )r=   r8   r:   r4   r;   ©	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r0   rM   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r@   r'   s   @@r(   r    r    ,   s   ù‡ € ÷ ó  ÷$+÷ +ð +r+   r    c                   óÎ   a a€ ] tR t^Ht o]! RRR7      R
V3R lV 3R lll4       t]]! RRR7      R
V3R lR ll4       4       t]P                  ! 4       ]
R 4       4       tR	tVtV ;t# )ÚLasrEncoderRotaryEmbeddingÚdevicez5.18)Úversionc                ó    <€ V ^8„  d   QhRS[ /# r"   r%   )r&   r'   s   "€r(   r)   Ú'LasrEncoderRotaryEmbedding.__annotate__J   s   ø€ ÷ Oñ OÑ0ñ Or+   c                óä  <€ \         SV `  4        VP                  V n        VP                  V n        Wn        V P
                  P                  R ,          V n        V P                  pV P                  R8w  d   \        V P                  ,          pV! V P
                  V4      w  q@n
        \        P                  ! VRR7      V n        \        P                  ! VP                  4       RR7      V n        R# )Ú	rope_typeÚdefaultF)Ú
persistentN)r/   r0   Úmax_position_embeddingsÚmax_seq_len_cachedÚoriginal_max_seq_lenr$   Úrope_parametersr_   Úcompute_default_rope_parametersr   Úattention_scalingr   ÚBufferÚinv_freqÚcloneÚoriginal_inv_freq)r?   r$   rZ   Úrope_init_fnri   r@   s   &&&  €r(   r0   Ú#LasrEncoderRotaryEmbedding.__init__I   s¬   ø€ ä‰ÑÔØ"(×"@Ñ"@ˆÔØ$*×$BÑ$BˆÔ!àŒàŸ™×4Ñ4°[ÕAˆŒØ!%×!EÑ!EˆØ�>‰>˜YÔ&Ü.¨t¯~©~Õ>ˆLÙ+7¸¿¹ÀVÓ+LÑ(ˆÔ(äŸ	š	 (°uÔ=ˆŒÜ!#§¢¨8¯>©>Ó+;ÈÔ!NˆÖr+   c                óP   <€ V ^8„  d   QhRS[ RS[S[P                  S[3,          /# )r#   r$   rD   )r   ÚtuplerF   rG   Úfloat)r&   r'   s   "€r(   r)   r]   \   s+   ø€ ÷ 5ñ 5Ù!ð5á	‰u�|‰|™UÐ"Õ	#ñ5r+   c           	     ó0  € V P                   R,          p\        V RR4      ;'       g    V P                  V P                  ,          pRpRV\        P
                  ! ^ V^\        P                  R7      V,          ,          ,          pVP                  V4      V3# )a~  
Computes the inverse frequencies according to the original RoPE implementation
Args:
    config ([`~transformers.PreTrainedConfig`]):
        The model configuration.
Returns:
    Tuple of (`torch.Tensor`, `float`), containing the inverse frequencies for the RoPE embeddings and the
    post-processing scaling factor applied to the computed cos/sin (unused in this type of RoPE).
Ú
rope_thetaÚhead_dimNg      ð?©Údtype)re   Úgetattrr3   Únum_attention_headsrF   Úarangerp   Úto)r$   rZ   ÚkwargsÚbaseÚdimÚattention_factorri   s   &&,    r(   rf   Ú:LasrEncoderRotaryEmbedding.compute_default_rope_parametersZ   s~   € ð ×%Ñ% lÕ3ˆÜ�f˜j¨$Ó/×cÐc°6×3EÑ3EÈ×IcÑIcÕ3cˆàÐà˜$¤5§<¢<°°3¸ÄÇÁÔ#MÐPSÕ#SÕTÕUˆØ�{‰{˜6Ó"Ð$4Ð4Ð4r+   c                ó^  € V P                   R,          P                  VP                  ^ ,          R	^4      P                  \        P
                  VP                  R7      pVR
,          P                  4       p\        VP                  P                  \        4      '       d2   VP                  P                  R8w  d   VP                  P                  MRp\        VRR7      ;_uu_ 4        W4,          P                  ^^4      p\        P                  ! Wf3R	R7      pVP                  4       V P                  ,          pVP                  4       V P                  ,          p	R R R 4       XP                  VP                   R7      X	P                  VP                   R7      3#   + '       g   i     LH; i)N)ru   rZ   ÚmpsÚcpuF)Údevice_typeÚenabled©r|   rt   )NºNNNNéÿÿÿÿ)r…   Nr…   )ri   ÚexpandÚshapery   rF   rp   rZ   Ú
isinstanceÚtypeÚstrr   rK   ÚcatÚcosrg   Úsinru   )
r?   ÚxÚposition_idsÚinv_freq_expandedÚposition_ids_expandedr‚   ÚfreqsÚembr�   rŽ   s
   &&&       r(   rM   Ú"LasrEncoderRotaryEmbedding.forwardp   s2  € ð �M‰M˜-Õ(×/Ñ/°×0BÑ0BÀ1Õ0EÀrÈ1ÓM×PÑPÔW\×WbÑWbÐkl×ksÑksÐPÓtð 	ð !-¨ZÕ 8× >Ñ >Ó @Ðä'1°!·(±(·-±-Ä×'EÒ'EÈ!Ï(É(Ï-É-Ð[`ÔJ`�a—h‘h—m’mÐfkˆä¨¸U×CÖCØ&Õ>×IÑIÈ!ÈQÓOˆEÜ—)’)˜U˜N°Ô3ˆCØ—'‘'“)˜d×4Ñ4Õ4ˆCØ—'‘'“)˜d×4Ñ4Õ4ˆC÷	 Dð �v‰v˜AŸG™GˆvÓ$ c§f¡f°1·7±7 fÓ&;Ð;Ð;÷ D×Cús   Ã(A4FÆF,	)rg   r$   ri   rc   rk   rd   r_   ©N)rP   rQ   rR   rS   r   r0   Ústaticmethodrf   rF   Úno_gradr   rM   rT   rU   rV   rW   s   @@r(   rY   rY   H   su   ù‡ € Ù�X vÔ.÷Oô Oó /ðOð  Ù�X vÔ.÷5ñ 5ó /ó ð5ð( ‡]‚]ƒ_Øñ<ó ó ÷<ð <r+   rY   c                óÌ   € V RRV P                   R,          ^,          13,          pV RV P                   R,          ^,          R13,          p\        P                  ! V) V3RR7      # )z*Rotates half the hidden dims of the input..Nr„   r†   )rˆ   rF   rŒ   )r�   Úx1Úx2s   &  r(   Úrotate_halfrœ   ƒ   sZ   € à	
ˆ3Ð"�!—'‘'˜"•+ Õ"Ð"Ð"Õ	#€BØ	
ˆ3�—‘˜•˜qÕ Ñ"Ð"Õ	#€BÜ�9Š9�r�c˜2�Y BÔ'Ð'r+   Úrotary_pos_embc                óÈ   € VP                  V4      pVP                  V4      pW,          \        V 4      V,          ,           pW,          \        V4      V,          ,           pWV3# )aI  Applies Rotary Position Embedding to the query and key tensors.

Args:
    q (`torch.Tensor`): The query tensor.
    k (`torch.Tensor`): The key tensor.
    cos (`torch.Tensor`): The cosine part of the rotary embedding.
    sin (`torch.Tensor`): The sine part of the rotary embedding.
    unsqueeze_dim (`int`, *optional*, defaults to 1):
        The 'unsqueeze_dim' argument specifies the dimension along which to unsqueeze cos[position_ids] and
        sin[position_ids] so that they can be properly broadcasted to the dimensions of q and k. For example, note
        that cos[position_ids] and sin[position_ids] have the shape [batch_size, seq_len, head_dim]. Then, if q and
        k have the shape [batch_size, heads, seq_len, head_dim], then setting unsqueeze_dim=1 makes
        cos[position_ids] and sin[position_ids] broadcastable to the shapes of q and k. Similarly, if q and k have
        the shape [batch_size, seq_len, heads, head_dim], then set unsqueeze_dim=2.
Returns:
    `tuple(torch.Tensor)` comprising of the query and key tensors rotated using the Rotary Position Embedding.
)Ú	unsqueezerœ   )ÚqÚkr�   rŽ   Úunsqueeze_dimÚq_embedÚk_embeds   &&&&&  r(   Úapply_rotary_pos_embr¥   Š   sS   € ð& �-‰-˜Ó
&€CØ
�-‰-˜Ó
&€CØ�wœ; q›>¨CÕ/Õ0€GØ�wœ; q›>¨CÕ/Õ0€GØÐÐr+   c                ód   € V ^8„  d   QhR\         P                  R\        R\         P                  /# )r#   rL   Ún_reprD   ©rF   rG   Úint)r&   s   "r(   r)   r)   ¤   s.   € ÷ 	Uñ 	UœUŸ\™\ð 	U´#ð 	U¼%¿,¹,ñ 	Ur+   c                ó˜   € V P                   w  r#rEV^8X  d   V # V R,          P                  W#WV4      p V P                  W#V,          WE4      # )zÈ
This is the equivalent of torch.repeat_interleave(x, dim=1, repeats=n_rep). The hidden states go from (batch,
num_key_value_heads, seqlen, head_dim) to (batch, num_attention_heads, seqlen, head_dim)
)r…   r…   Nr…   r…   )rˆ   r‡   Úreshape)rL   r§   ÚbatchÚnum_key_value_headsÚslenrs   s   &&    r(   Ú	repeat_kvr¯   ¤   sU   € ð
 2?×1DÑ1DÑ.€E Ø�„zØÐØ!Ð"2Õ3×:Ñ:¸5ÐW\ÐdlÓm€MØ× Ñ  ¸eÕ(CÀTÓTÐTr+   c                ó   € V ^8„  d   QhR\         P                  R\        P                  R\        P                  R\        P                  R\        P                  R,          R\        R\        R	\
        \        ,          /# )
r#   ÚmoduleÚqueryÚkeyÚvalueÚattention_maskNÚscalingÚdropoutrz   )r   ÚModulerF   rG   rp   r   r   )r&   s   "r(   r)   r)   °   sw   € ÷ %ñ %Ü�I‰Ið%ä�<‰<ð%ô 
�‰ð%ô �<‰<ð	%ô
 —L‘L 4Õ'ð%ô ð%ô ð%ô Ô'Õ(ñ%r+   c                 ó"  € \        W P                  4      p\        W0P                  4      p	\        P                  ! WP	                  ^^4      4      V,          p
Ve	   W¤,           p
\
        P                  P                  V
R\        P                  R7      P                  VP                  4      p
\
        P                  P                  W¦V P                  R7      p
\        P                  ! W©4      pVP	                  ^^4      P                  4       pWº3# )r#   ©r|   ru   ©ÚpÚtrainingr†   )r¯   Únum_key_value_groupsrF   ÚmatmulrK   r   Ú
functionalÚsoftmaxÚfloat32ry   ru   r·   r½   Ú
contiguous)r±   r²   r³   r´   rµ   r¶   r·   rz   Ú
key_statesÚvalue_statesÚattn_weightsÚattn_outputs   &&&&&&&,    r(   Úeager_attention_forwardrÈ   °   sÒ   € ô ˜3× ;Ñ ;Ó<€JÜ˜U×$?Ñ$?Ó@€Lä—<’< ×';Ñ';¸A¸qÓ'AÓBÀWÕL€LØÒ!Ø#Õ4ˆä—=‘=×(Ñ(¨¸2ÄUÇ]Á]Ð(ÓS×VÑVÐW\×WbÑWbÓc€LÜ—=‘=×(Ñ(¨È6Ï?É?Ð(Ó[€LÜ—,’,˜|Ó:€KØ×'Ñ'¨¨1Ó-×8Ñ8Ó:€KàÐ$Ð$r+   c                   óX   a a€ ] tR t^Ét oRtV3R lV 3R lltRV3R lR lltRtVtV ;t	# )ÚLasrEncoderAttentionz=Multi-headed attention from 'Attention Is All You Need' paperc                ó&   <€ V ^8„  d   QhRS[ RS[/# ©r#   r$   Ú	layer_idx©r   r©   )r&   r'   s   "€r(   r)   Ú!LasrEncoderAttention.__annotate__Í   s   ø€ ÷ 
ñ 
Ñ0ð 
¹Sñ 
r+   c                ó¢  <€ \         SV `  4        Wn        W n        \	        VR VP
                  VP                  ,          4      V n        VP                  VP                  ,          V n	        V P                  R,          V n
        VP                  V n        RV n        \        P                  ! VP
                  VP                  V P                  ,          VP                  R7      V n        \        P                  ! VP
                  VP                  V P                  ,          VP                  R7      V n        \        P                  ! VP
                  VP                  V P                  ,          VP                  R7      V n        \        P                  ! VP                  V P                  ,          VP
                  VP                  R7      V n        R# )rs   F©ÚbiasNg      à¿)r/   r0   r$   rÍ   rv   r3   rw   rs   r­   r¾   r¶   Úattention_dropoutÚ	is_causalr   r1   Úattention_biasÚq_projÚk_projÚv_projÚo_proj©r?   r$   rÍ   r@   s   &&&€r(   r0   ÚLasrEncoderAttention.__init__Í   sI  ø€ Ü‰ÑÔØŒØ"ŒÜ ¨
°F×4FÑ4FÈ&×JdÑJdÕ4dÓeˆŒØ$*×$>Ñ$>À&×B\ÑB\Õ$\ˆÔ!Ø—}‘} dÕ*ˆŒØ!'×!9Ñ!9ˆÔØˆŒä—i’iØ×Ñ × :Ñ :¸T¿]¹]Õ JÐQW×QfÑQfô
ˆŒô —i’iØ×Ñ × :Ñ :¸T¿]¹]Õ JÐQW×QfÑQfô
ˆŒô —i’iØ×Ñ × :Ñ :¸T¿]¹]Õ JÐQW×QfÑQfô
ˆŒô —i’iØ×&Ñ&¨¯©Õ6¸×8JÑ8JÐQW×QfÑQfô
ˆŽr+   c                ó  <€ V ^8„  d   QhRS[ P                  RS[S[ P                  S[ P                  3,          R,          RS[ P                  R,          RS[S[,          RS[S[ P                  S[ P                  3,          /# )r#   rL   Úposition_embeddingsNrµ   rz   rD   )rF   rG   ro   r   r   )r&   r'   s   "€r(   r)   rÏ   ä   sy   ø€ ÷ ")ñ ")á—|‘|ð")ñ #¡5§<¡<±·±Ð#=Õ>ÀÕEð")ñ Ÿ™ tÕ+ð	")ñ
 Ñ+Õ,ð")ñ 
‰u�|‰|™UŸ\™\Ð)Õ	*ñ")r+   c                óÌ  € VP                   R R p. VORNV P                  N5pV P                  V4      P                  V4      P	                  ^^4      pV P                  V4      P                  V4      P	                  ^^4      pV P                  V4      P                  V4      P	                  ^^4      p	Vw  r«\        WxW«4      w  rx\        P                  ! V P                  P                  \        4      pT! V VVV	V3RV P                  '       g   RMV P                  RV P                  /VB w  rÞVP                   ! . VORN5!  P#                  4       pV P%                  V4      pWÞ3# )Nr·   ç        r¶   r†   )rˆ   rs   rÖ   ÚviewrK   r×   rØ   r¥   r   Úget_interfacer$   Ú_attn_implementationrÈ   r½   rÓ   r¶   r«   rÃ   rÙ   )r?   rL   rÝ   rµ   rz   Úinput_shapeÚhidden_shapeÚquery_statesrÄ   rÅ   r�   rŽ   Úattention_interfacerÇ   rÆ   s   &&&&,          r(   rM   ÚLasrEncoderAttention.forwardä   se  € ð $×)Ñ)¨#¨2Ð.ˆØ8˜Ð8 bÐ8¨$¯-©-Ñ8ˆà—{‘{ =Ó1×6Ñ6°|ÓD×NÑNÈqÐRSÓTˆØ—[‘[ Ó/×4Ñ4°\ÓB×LÑLÈQÐPQÓRˆ
Ø—{‘{ =Ó1×6Ñ6°|ÓD×NÑNÈqÐRSÓTˆà&‰ˆÜ#7¸ÐRUÓ#[Ñ ˆä(?×(MÒ(MØ�K‰K×,Ñ,Ô.Eó)
Ðñ %8ØØØØØñ	%
ð  $Ÿ}Ÿ}˜}‘C°$×2HÑ2Hð	%
ð —L‘Lð	%
ð ñ	%
Ñ!ˆð "×)Ò)Ð;¨;Ð;¸Ó;×FÑFÓHˆØ—k‘k +Ó.ˆØÐ(Ð(r+   )rÓ   r$   rs   rÔ   r×   rÍ   r¾   rÙ   rÖ   r¶   rØ   ©NN)
rP   rQ   rR   rS   Ú__doc__r0   rM   rT   rU   rV   rW   s   @@r(   rÊ   rÊ   É   s!   ù‡ € áG÷
ó 
÷.")÷ ")ò ")r+   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# )ÚLasrEncoderConvolutionModulei	  c                ó    <€ V ^8„  d   QhRS[ /# r"   r%   )r&   r'   s   "€r(   r)   Ú)LasrEncoderConvolutionModule.__annotate__
  s   ø€ ÷  
ñ  
Ñ0ñ  
r+   c           
     ó‚  <€ \         SV `  4        VP                  pVf+   VP                  p\        \        VRR4      ,          V n        M+VR,          p\        VP                  RR4      ,          V n        RV n        \        P                  ! V^V,          ^^^ VP                  R7      V n        \        P                  ! VVV^V P                  VVP                  R7      V n        \        P                  ! VP                  VP                  R	7      V n        \        P                  ! W3^^^ VP                  R7      V n        R# )
z—
Args:
    config (LasrEncoderConfig): Configuration for the model.
    module_config (dict): Configuration for the module (e.g., encoder or decoder).
NÚ
hidden_actÚsilur-   Ú
activationÚsame)r-   r.   ÚpaddingrÒ   )r.   ró   ÚgroupsrÒ   )Úmomentum)r/   r0   r3   Úconv_kernel_sizer   rv   rñ   Úgetró   r   r5   Úconvolution_biasÚpointwise_conv1Údepthwise_convÚBatchNorm1dÚbatch_norm_momentumÚnormÚpointwise_conv2)r?   r$   Úmodule_configÚchannelsr-   r@   s   &&&  €r(   r0   Ú%LasrEncoderConvolutionModule.__init__
  s  ø€ ô 	‰ÑÔØ×%Ñ%ˆàÒ à ×1Ñ1ˆKÜ$¤W¨V°\À6Ó%JÕKˆD�Oà'¨Õ6ˆKÜ$ ]×%6Ñ%6°|ÀVÓ%LÕMˆDŒOØˆŒÜ!ŸyšyØ�a˜(•l°¸!ÀQÈV×MdÑMdô 
ˆÔô !ŸišiØØØØØ—L‘LØØ×(Ñ(ô
ˆÔô —N’N 6×#5Ñ#5À×@ZÑ@ZÔ[ˆŒ	Ü!ŸyšyØ¨A°aÀÈ×I`ÑI`ô 
ˆÖr+   c                ó  € VP                  ^^4      pV P                  V4      p\        P                  P	                  V^R7      pVeh   VP
                  \        P                  8X  d   \        P                  ! V( ^R7      pM\        P                  ! VR8H  ( ^R7      pVP                  VR4      pV P                  V4      pV P                  V4      pV P                  V4      pV P                  V4      pVP                  ^^4      # )a!  
Compute convolution module.

Args:
    hidden_states (`torch.Tensor` of shape `(batch, time, channels)`): Input tensor.
    attention_mask (`torch.Tensor` of shape `(batch, 1, time, time)`): Attention mask.

Returns:
    `torch.Tensor`: Output tensor of shape `(batch, time, channels)`.

r„   rß   )rK   rù   r   rÀ   Úgluru   rF   ÚboolÚallÚmasked_fillrú   rý   rñ   rþ   )r?   rL   rµ   Úall_masked_rowss   &&& r(   rM   Ú$LasrEncoderConvolutionModule.forward,  sè   € ð &×/Ñ/°°1Ó5ˆð ×,Ñ,¨]Ó;ˆäŸ™×)Ñ)¨-¸QÐ)Ó?ˆð Ò%Ø×#Ñ#¤u§z¡zÔ1Ü"'§)¢)¨^¨OÀÔ"C‘ä"'§)¢)¨nÀÑ.CÐ,DÈ!Ô"L�Ø)×5Ñ5°oÀsÓKˆMð ×+Ñ+¨MÓ:ˆØŸ	™	 -Ó0ˆØŸ™¨Ó6ˆØ×,Ñ,¨]Ó;ˆà×&Ñ& q¨!Ó,Ð,r+   )rñ   rú   rý   ró   rù   rþ   r–   rO   rW   s   @@r(   rë   rë   	  s   ù‡ € ÷ 
õ  
÷D"-ô "-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# )ÚLasrEncoderFeedForwardiQ  c                ó    <€ V ^8„  d   QhRS[ /# r"   r%   )r&   r'   s   "€r(   r)   Ú#LasrEncoderFeedForward.__annotate__R  s   ø€ ÷ <ñ <Ñ0ñ <r+   c                ón  <€ \         SV `  4        \        P                  ! VP                  VP
                  VP                  R 7      V n        \        VP                  ,          V n
        \        P                  ! VP
                  VP                  VP                  R 7      V n        VP                  V n        R# )rÑ   N)r/   r0   r   r1   r3   Úintermediate_sizerÕ   Úlinear1r   rï   rñ   Úlinear2Úactivation_dropoutr>   s   &&€r(   r0   ÚLasrEncoderFeedForward.__init__R  s|   ø€ Ü‰ÑÔÜ—y’y ×!3Ñ!3°V×5MÑ5MÐTZ×TiÑTiÔjˆŒÜ  ×!2Ñ!2Õ3ˆŒÜ—y’y ×!9Ñ!9¸6×;MÑ;MÐTZ×TiÑTiÔjˆŒØ"(×";Ñ";ˆÖr+   c                óÒ   € V P                  V P                  V4      4      p\        P                  P	                  WP
                  V P                  R 7      pV P                  V4      pV# )r»   )rñ   r  r   rÀ   r·   r  r½   r  )r?   rL   s   &&r(   rM   ÚLasrEncoderFeedForward.forwardY  sS   € ØŸ™¨¯©°]Ó(CÓDˆÜŸ™×-Ñ-¨m×?VÑ?VÐae×anÑanÐ-ÓoˆØŸ™ ]Ó3ˆØÐr+   )rñ   r  r  r  rO   rW   s   @@r(   r
  r
  Q  s   ù‡ € ÷<ó <÷ò r+   r
  c                   óT   a a€ ] tR tRt oV3R lV 3R lltRV3R lR lltRtVtV ;t# )ÚLasrEncoderBlocki`  c                ó&   <€ V ^8„  d   QhRS[ RS[/# rÌ   rÎ   )r&   r'   s   "€r(   r)   ÚLasrEncoderBlock.__annotate__a  s    ø€ ÷ Bñ BÑ0ð B¹Sñ Br+   c                óê  <€ \         SV `  4        R V n        \        V4      V n        \        W4      V n        \        V4      V n        \        V4      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        \        P                  ! VP                  VP                  R R7      V n        VP&                  V n        VP(                  V n        R# )FrÑ   N)r/   r0   Úgradient_checkpointingr
  Úfeed_forward1rÊ   Ú	self_attnrë   ÚconvÚfeed_forward2r   Ú	LayerNormr3   Úlayer_norm_epsÚnorm_feed_forward1Únorm_self_attÚ	norm_convÚnorm_feed_forward2Únorm_outÚfeed_forward_residual_weightsÚconv_residual_weightsrÚ   s   &&&€r(   r0   ÚLasrEncoderBlock.__init__a  s  ø€ Ü‰ÑÔØ&+ˆÔ#ä3°FÓ;ˆÔÜ-¨fÓ@ˆŒÜ0°Ó8ˆŒ	Ü3°FÓ;ˆÔä"$§,¢,¨v×/AÑ/AÀ6×CXÑCXÐ_dÔ"eˆÔÜŸ\š\¨&×*<Ñ*<¸f×>SÑ>SÐZ_Ô`ˆÔÜŸš f×&8Ñ&8¸&×:OÑ:OÐV[Ô\ˆŒÜ"$§,¢,¨v×/AÑ/AÀ6×CXÑCXÐ_dÔ"eˆÔÜŸš V×%7Ñ%7¸×9NÑ9NÐUZÔ[ˆŒà-3×-QÑ-QˆÔ*Ø%+×%AÑ%AˆÖ"r+   c          
      ó´   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  R,          RS[S[,          RS[ P                  /# )r#   rL   rµ   NrÝ   rz   rD   )rF   rG   r   r   )r&   r'   s   "€r(   r)   r  s  s]   ø€ ÷ !ñ !á—|‘|ð!ñ Ÿ™ tÕ+ð!ñ #Ÿ\™\¨DÕ0ð	!ñ
 Ñ+Õ,ð!ñ 
�‰ñ!r+   c           	     ó°  € TpV P                  V P                  V4      4      pV P                  ^ ,          V,          V P                  ^,          V,          ,           pV P                  V4      pV P                  ! RRVRVRV/VB w  rxW,           pV P                  V P                  V4      VR7      p	V P                  ^ ,          V,          V P                  ^,          V	,          ,           pTpV P                  V P                  V4      4      pV P                  ^ ,          V,          V P                  ^,          V,          ,           pV P                  V4      pV# )r   rL   rµ   rÝ   )rµ   © )r  r!  r&  r"  r  r  r#  r'  r  r$  r%  )
r?   rL   rµ   rÝ   rz   ÚresidualÚnormalized_hidden_statesrÇ   Ú_Úconv_outputs
   &&&&,     r(   rM   ÚLasrEncoderBlock.forwards  sP  € ð !ˆØ×*Ñ*¨4×+BÑ+BÀ=Ó+QÓRˆà×.Ñ.¨qÕ1°HÕ<¸t×?aÑ?aÐbcÕ?dÐgtÕ?tÕtð 	ð $(×#5Ñ#5°mÓ#DÐ ØŸšñ 
Ø2ð
à)ð
ð !4ð
ð ñ	
‰ˆð &Õ3ˆà—i‘i §¡¨}Ó =Èn�iÓ]ˆØ×2Ñ2°1Õ5¸ÕEÈ×HbÑHbÐcdÕHeÐhsÕHsÕsˆà ˆØ×*Ñ*¨4×+BÑ+BÀ=Ó+QÓRˆà×.Ñ.¨qÕ1°HÕ<¸t×?aÑ?aÐbcÕ?dÐgtÕ?tÕtð 	ð Ÿ™ mÓ4ˆàÐr+   )r  r'  r  r  r&  r  r#  r!  r$  r%  r"  r  rè   rO   rW   s   @@r(   r  r  `  s    ù‡ € ÷Bó B÷$!÷ !ò !r+   r  c                   óŽ   a € ] tR tRt o RtRtRtRtR.tRt	Rt
RtRtRtRtR]R	]/tV 3R
 lR ltRV 3R lR lltV 3R ltRtV tR# )ÚLasrPreTrainedModeli—  ÚmodelrC   ÚaudioTr  FrL   Ú
attentionsc                ó4   <€ V ^8„  d   QhRS[ P                  /# )r#   Úinput_lengthsrE   )r&   r'   s   "€r(   r)   Ú LasrPreTrainedModel.__annotate__®  s   ø€ ÷ 	ñ 	¹E¿L¹Lñ 	r+   c                ó  € \        V P                  \        4      '       d   V P                  P                  MV P                  pVP                  pVP
                  p^p\        V4       F  pW,
          V,          ^,           pK  	  V# )r#   )r‰   r$   r   Úencoder_configr6   r7   Úrange)r?   r7  r:  r-   r.   Ú
num_layersr.  s   &&     r(   Ú_get_subsampling_output_lengthÚ2LasrPreTrainedModel._get_subsampling_output_length®  sn   € Ü7AÀ$Ç+Á+Ì}×7]Ò7]˜Ÿ™×3Ò3Ðcg×cnÑcnˆØ$×AÑAˆØ×7Ñ7ˆàˆ
Ü�zÖ"ˆAØ*Õ8¸VÕCÀaÕGŠMñ #ð Ðr+   Nc                óH   <€ V ^8„  d   QhRS[ P                  RS[R,          /# )r#   rµ   Útarget_lengthNr¨   )r&   r'   s   "€r(   r)   r8  ¹  s&   ø€ ÷ 	ñ 	¹¿¹ð 	ÑVYÐ\`ÕV`ñ 	r+   c                óÈ   € V P                  VP                  R4      4      pVe   TMVP                  4       p\        P                  ! WAP
                  R7      VR,          8  pV# )zæ
Convert the input attention mask to its subsampled form. `target_length` sets the desired output length, useful
when the attention mask length differs from `sum(-1).max()` (i.e., when the longest sequence in the batch is padded)
©rZ   r†   )r…   N)r=  ÚsumÚmaxrF   rx   rZ   )r?   rµ   r@  Úoutput_lengthsÚ
max_lengths   &&&  r(   Ú_get_output_attention_maskÚ.LasrPreTrainedModel._get_output_attention_mask¹  s[   € ð
 ×<Ñ<¸^×=OÑ=OÐPRÓ=SÓTˆà&3Ò&?‘]À^×EWÑEWÓEYˆ
ÜŸš j×9NÑ9NÔOÐR`ÐahÕRiÑiˆØÐr+   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r"   ©r   )r&   r'   s   "€r(   r)   r8  —  s   ø‡ ‚ áÑò r+   r+  r–   )rP   rQ   rR   rS   Úbase_model_prefixÚmain_input_nameÚinput_modalitiesÚsupports_gradient_checkpointingÚ_no_split_modulesÚ_supports_flat_attention_maskÚ_supports_sdpaÚ_supports_flex_attnÚ_supports_flash_attnÚ_can_compile_fullgraphÚ_supports_attention_backendr  rÊ   Ú_can_record_outputsr=  rG  Ú__annotate_func__rT   rU   ©r'   s   @r(   r2  r2  —  s|   ø‡ € ð  ÐØ&€OØÐØ&*Ð#Ø+Ð,ÐØ$(Ð!Ø€NàÐð !Ðà!ÐØ"&ÐàÐ)ØÐ*ðÐ÷
	ð 	÷	ò 	÷E ƒ r+   r2  z¨
    Extends [~modeling_outputs.BaseModelOutputWithPooling] to include the output attention mask since sequence length
    is not preserved in the model's forward.
    )Úcustom_introc                   ó4   a € ] tR tRt o RtRtV 3R ltRtV tR# )ÚLasrEncoderModelOutputiÅ  a~  
attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*):
    Mask to avoid performing attention on padding token indices after sequence compression. Returned because the
    sequence length may differ from the input sequence length. Mask values selected in `[0, 1]`:

    - 1 for tokens that are **not masked**,
    - 0 for tokens that are **masked**.
Nc                óH   <€ V ^8„  d   Qh/ S[ P                  R,          ;R&   # )r#   Nrµ   rE   )r&   r'   s   "€r(   r)   Ú#LasrEncoderModelOutput.__annotate__Å  s   ø‡ ‚ ñ" —L‘L 4Õ'Ñ.ò# r+   r+  )	rP   rQ   rR   rS   ré   rµ   rW  rT   rU   rX  s   @r(   r[  r[  Å  s   ø‡ € ñð +/€N÷# ƒ r+   r[  zh
    The LasrEncoder model, based on the Conformer architecture](https://arxiv.org/abs/2005.08100).
    c                   ó‚   a a€ ] tR tRt oRtV3R lV 3R llt]]]R	V3R lR ll4       4       4       t	V3R lt
RtVtV ;t# )
ÚLasrEncoderiÙ  Úencoderc                ó    <€ V ^8„  d   QhRS[ /# r"   r%   )r&   r'   s   "€r(   r)   ÚLasrEncoder.__annotate__â  s   ø€ ÷ ñ Ñ0ñ r+   c           	     óö  <€ \         SV `  V4       R V n        VP                  V n        VP                  V n        VP
                  V n        \        V4      V n        \        V4      V n	        \        P                  ! \        VP                  4       Uu. uF  p\        W4      NK  	  up4      V n        \        P                   ! VP"                  VP$                  R R7      V n        V P)                  4        R# u upi )F)ÚepsrÒ   N)r/   r0   r  r·   Údropout_positionsÚ	layerdropr    Ú
subsamplerrY   Ú
rotary_embr   Ú
ModuleListr;  Únum_hidden_layersr  Úlayersr  r3   r   Úout_normÚ	post_initrÚ   s   && €r(   r0   ÚLasrEncoder.__init__â  s¾   ø€ Ü‰Ñ˜Ô Ø&+ˆÔ#à—~‘~ˆŒØ!'×!9Ñ!9ˆÔØ×)Ñ)ˆŒä0°Ó8ˆŒÜ4°VÓ<ˆŒÜ—m’mÜBGÈ×H`ÑH`ÔBaÓbÑBa°YÔ˜fÖ0ÑBaÑbó
ˆŒô Ÿš V×%7Ñ%7¸V×=RÑ=RÐY^Ô_ˆŒà�‰Öùò	 cs   ÂC6c          
      óŒ   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[R,          RS[S[,          RS[/# )r#   rC   rµ   NÚoutput_attention_maskrz   rD   )rF   rG   r  r   r   r[  )r&   r'   s   "€r(   r)   rb  ö  s[   ø€ ÷ H
ñ H
áŸ™ðH
ñ Ÿ™ tÕ+ðH
ñ  $ d�{ð	H
ñ
 Ñ+Õ,ðH
ñ 
 ñH
r+   c           	     óÜ  € V P                  V4      pV P                  V\        P                  ! VP                  ^,          VP
                  R7      P                  ^ 4      4      w  rg\        P                  P                  WPP                  V P                  R7      p\        P                  P                  W`P                  V P                  R7      p\        P                  P                  WpP                  V P                  R7      pRpVe&   V P                  W%P                  ^,          R7      pTp\        V P                  VVR7      pV P                   FW  p	Rp
V P                  '       d)   \        P                   ! . 4      pW°P"                  8  d   Rp
V
'       d   KI  V	! V3RVR	Wg3/VB pKY  	  V P%                  V4      p\'        TV'       d   Ve   VP)                  4       R
7      # RR
7      # )a»  
output_attention_mask (`bool`, *optional*):
    Whether to return the output attention mask.

Example:

```python
>>> from transformers import AutoProcessor, LasrEncoder
>>> from datasets import load_dataset, Audio

>>> model_id = "google/medasr"
>>> processor = AutoProcessor.from_pretrained(model_id)
>>> encoder = ParakeetEncoder.from_pretrained(model_id)

>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))

>>> inputs = processor(ds[0]["audio"]["array"])
>>> encoder_outputs = encoder(**inputs)

>>> print(encoder_outputs.last_hidden_state.shape)
```
rB  r»   N©r@  )r$   Úinputs_embedsrµ   FTrµ   rÝ   )Úlast_hidden_staterµ   )rg  rh  rF   rx   rˆ   rZ   rŸ   r   rÀ   r·   r½   re  rG  r   r$   rk  Úrandrf  rl  r[  r©   )r?   rC   rµ   rp  rz   rL   r�   rŽ   Úoutput_maskÚencoder_layerÚto_dropÚdropout_probabilitys   &&&&,       r(   rM   ÚLasrEncoder.forwardó  s«  € ðD Ÿ™¨Ó7ˆØ—?‘?Øœ5Ÿ<š<¨×(;Ñ(;¸AÕ(>À}×G[ÑG[Ô\×fÑfÐghÓió
‰ˆô Ÿ™×-Ñ-¨m¿|¹|ÐVZ×VcÑVcÐ-ÓdˆÜ�m‰m×#Ñ# C×+AÑ+AÈDÏMÉMÐ#ÓZˆÜ�m‰m×#Ñ# C×+AÑ+AÈDÏMÉMÐ#ÓZˆàˆØÒ%Ø×9Ñ9¸.×XkÑXkÐlmÕXnÐ9ÓoˆKØ(ˆNä2Ø—;‘;Ø'Ø)ô
ˆð "Ÿ[œ[ˆMàˆGØ�}�}ˆ}Ü&+§j¢j°£nÐ#Ø&¯©Ô7Ø"�Gç‘7Ù -Ø!ñ!à#1ð!ð *-¨
ð!ð ñ	!’ñ )ð  Ÿ™ mÓ4ˆä%Ø+ß0EÈ+ÒJa˜;Ÿ?™?Ó,ô
ð 	
àgkô
ð 	
r+   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r"   r%   )r&   r'   s   "€r(   r)   rb  Ù  s   ø‡ ‚ ñ Ñò r+   )r·   re  r  rf  rk  rl  rh  rg  rè   )rP   rQ   rR   rS   rK  r0   r   r   r   rM   rW  rT   rU   rV   rW   s   @@r(   r_  r_  Ù  sJ   ù‡ € ð "Ð÷ó ð" ØØ÷H
ñ H
ó ó  ó ðH
÷; … r+   r_  c                   ó<   a € ] tR tRt o RtRtRtRtV 3R ltRt	V t
R# )ÚLasrCTCGenerateOutputiA  a6  
Outputs of Lasr CTC model generation.

Args:
    sequences (`torch.LongTensor` of shape `(batch_size, sequence_length)`):
        The generated sequences. The second dimension (sequence_length) is either equal to `max_length` or shorter
        if all batches finished early due to the `eos_token_id`.
    logits (`tuple(torch.FloatTensor)` *optional*, returned when `output_logits=True`):
        Unprocessed prediction scores of the language modeling head (scores for each vocabulary token before SoftMax)
        at each generation step. Tuple of `torch.FloatTensor` with up to `max_new_tokens` elements (one element for
        each generated token), with each tensor of shape `(batch_size, config.vocab_size)`.
    attentions (`tuple(tuple(torch.FloatTensor))`, *optional*, returned when `output_attentions=True`):
        Tuple (one element for each generated token) of tuples (one element for each layer of the decoder) of
        `torch.FloatTensor` of shape `(batch_size, num_heads, generated_length, sequence_length)`.
    hidden_states (`tuple(tuple(torch.FloatTensor))`, *optional*, returned when `output_hidden_states=True`):
        Tuple (one element for each generated token) of tuples (one element for each layer of the decoder) of
        `torch.FloatTensor` of shape `(batch_size, generated_length, hidden_size)`.
Nc                ó  <€ V ^8„  d   Qh/ S[ P                  ;R&   S[S[ P                  ,          R,          ;R&   S[S[S[ P                  ,          ,          R,          ;R&   S[S[S[ P                  ,          ,          R,          ;R&   # )r#   Ú	sequencesNÚlogitsr5  rL   )rF   Ú
LongTensorro   ÚFloatTensor)r&   r'   s   "€r(   r)   Ú"LasrCTCGenerateOutput.__annotate__A  sy   ø‡ ‚ ñ* ×ÑÑñ+ ñ, ‘%×#Ñ#Õ$ tÕ+Ñ2ñ- ñ. ‘e™E×-Ñ-Õ.Õ/°$Õ6Ñ=ñ/ ñ0 ™™u×0Ñ0Õ1Õ2°TÕ9Ñ@ò1 r+   r+  )rP   rQ   rR   rS   ré   r€  r5  rL   rW  rT   rU   rX  s   @r(   r}  r}  A  s"   ø‡ € ñð( /3€FØ9=€JØ<@€M÷1 ƒ r+   r}  c                   ó>   a a€ ] tR tRt oV3R lV 3R lltRtVtV ;t# )ÚLasrEncoderCTCHeadi\  c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r#   rL   rE   )r&   r'   s   "€r(   r)   ÚLasrEncoderCTCHead.__annotate__]  s   ø€ ÷ Nñ N¡U§\¡\ñ Nr+   c                ób   <€ \         SV `  VP                  ^^4      4      P                  ^^4      # rI   )r/   rM   rK   )r?   rL   r@   s   &&€r(   rM   ÚLasrEncoderCTCHead.forward]  s,   ø€ Ü‰w‰˜}×6Ñ6°q¸!Ó<Ó=×GÑGÈÈ1ÓMÐMr+   r+  )rP   rQ   rR   rS   rM   rT   rU   rV   rW   s   @@r(   r…  r…  \  s   ù‡ € ÷N÷ Nó Nr+   r…  zO
    Lasr Encoder with a Connectionist Temporal Classification (CTC) head.
    c                   ó²   a a€ ] tR tRt oV3R lV 3R llt]]R
V3R lR ll4       4       t]P                  ! 4       RV3R lR ll4       t
V3R ltR	tVtV ;t# )Ú
LasrForCTCia  c                ó    <€ V ^8„  d   QhRS[ /# r"   rJ  )r&   r'   s   "€r(   r)   ÚLasrForCTC.__annotate__i  s   ø€ ÷ ñ ™}ñ r+   c                óò   <€ \         SV `  V4       \        P                  ! VP                  4      V n        \        VP                  P                  VP                  ^R7      V n	        V P                  4        R# )rJ   )r-   N)r/   r0   r   Úfrom_configr:  r`  r…  r3   Ú
vocab_sizeÚctc_headrm  r>   s   &&€r(   r0   ÚLasrForCTC.__init__i  sU   ø€ Ü‰Ñ˜Ô Ü ×,Ò,¨V×-BÑ-BÓCˆŒä*¨6×+@Ñ+@×+LÑ+LÈf×N_ÑN_ÐmnÔoˆŒà�‰Ör+   c          
      ó    <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  R,          RS[S[,          RS[/# )r#   rC   rµ   NÚlabelsrz   rD   )rF   rG   r   r   r   )r&   r'   s   "€r(   r)   r�  s  s`   ø€ ÷ B
ñ B
áŸ™ðB
ñ Ÿ™ tÕ+ðB
ñ —‘˜tÕ#ð	B
ñ
 Ñ+Õ,ðB
ñ 
ñB
r+   c                ór  € Ve   VP                  RR4       V P                  ! RRVRV/VB pVP                  pV P                  V4      pRpVEe3   VP                  P                  R4      p	W0P                  P                  8g  p
V
P                  R4      pVP                  V
4      p\        P                  P                  VR\        P                  R7      P                  ^ ^4      p\        P                  P                   P#                  RR7      ;_uu_ 4        \        P                  P%                  VVV	VV P                  P                  V P                  P&                  V P                  P(                  R	7      pRRR4       \+        VVVP,                  VP.                  R
7      #   + '       g   i     L3; i)aJ  
Example:

```python
>>> from transformers import AutoProcessor, LasrForCTC
>>> from datasets import load_dataset, Audio

>>> model_id = "nvidia/lasr-ctc-1.1b"
>>> processor = AutoProcessor.from_pretrained(model_id)
>>> model = LasrForCTC.from_pretrained(model_id)

>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))

>>> inputs = processor(ds[0]["audio"]["array"], text=ds[0]["text"])
>>> outputs = model(**inputs)

>>> print(outputs.loss)
```Nrp  TrC   rµ   rº   F)rƒ   )ÚblankÚ	reductionÚzero_infinity)Úlossr€  rL   r5  r+  r†   )Ú
setdefaultr`  rt  r‘  rµ   rC  r$   Úpad_token_idÚmasked_selectr   rÀ   Úlog_softmaxrF   rÂ   rK   ÚbackendsÚcudnnÚflagsÚctc_lossÚctc_loss_reductionÚctc_zero_infinityr   rL   r5  )r?   rC   rµ   r”  rz   Úencoder_outputsrL   r€  r™  Úencoder_lengthsÚlabels_maskÚtarget_lengthsÚflattened_targetsÚ	log_probss   &&&&,         r(   rM   ÚLasrForCTC.forwardq  s�  € ð: ÒØ×ÑÐ5°tÔ<ØŸ,š,ñ 
Ø)ð
à)ð
ð ñ
ˆð (×9Ñ9ˆØ—‘˜}Ó-ˆàˆØÓØ-×<Ñ<×@Ñ@ÀÓDˆOð !§K¡K×$<Ñ$<Ñ<ˆKØ(Ÿ_™_¨RÓ0ˆNØ &× 4Ñ 4°[Ó AÐô Ÿ™×1Ñ1°&¸bÌÏÉÐ1ÓV×`Ñ`ÐabÐdeÓfˆIä—‘×%Ñ%×+Ñ+°EÐ+×:Õ:Ü—}‘}×-Ñ-ØØ%Ø#Ø"ØŸ+™+×2Ñ2Ø"Ÿk™k×<Ñ<Ø"&§+¡+×"?Ñ"?ð .ó �÷ ;ô ØØØ)×7Ñ7Ø&×1Ñ1ô	
ð 	
÷ ;×:ús   ÄA#F&Æ&F6	c                ó¶   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[RS[R,          RS[S[,          RS[S[ P                  ,          /# )r#   rC   rµ   NÚreturn_dict_in_generateÚcompile_configrz   rD   )rF   rG   r  r   r   r   r}  r�  )r&   r'   s   "€r(   r)   r�  ¸  sj   ø€ ÷ 6ñ 6áŸ™ð6ñ Ÿ™ tÕ+ð6ñ "&ð	6ñ
 &¨Õ,ð6ñ Ñ+Õ,ð6ñ 
¡×!1Ñ!1Õ	1ñ6r+   c                óŒ  € Ve   V P                  V4      MV P                  pRVR&   V! RRVRV/VB pVP                  P                  R	R7      pVe=   V P	                  W(P
                  ^,          R7      pV P                  P                  W‚( &   V'       d.   \        VVP                  VP                  VP                  R7      # V# )
a¨  
Example:

```python
>>> from transformers import AutoProcessor, LasrForCTC
>>> from datasets import load_dataset, Audio

>>> model_id = "google/medasr"
>>> processor = AutoProcessor.from_pretrained(model_id)
>>> model = LasrForCTC.from_pretrained(model_id)

>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))

>>> inputs = processor(ds[0]["audio"]["array"], text=ds[0]["text"])
>>> predicted_ids = model.generate(**inputs)
>>> transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True)

>>> print(transcription)
```
TÚreturn_dictrC   rµ   r„   rr  )r  r€  r5  rL   r+  r†   )Úget_compiled_callÚ__call__r€  ÚargmaxrG  rˆ   r$   r›  r}  r5  rL   )	r?   rC   rµ   r¬  r­  rz   Úmodel_forwardÚoutputsr  s	   &&&&&,   r(   ÚgenerateÚLasrForCTC.generate·  sÚ   € ð< CQÒB\˜×.Ñ.¨~Ô>Ðbf×boÑboˆà $ˆˆ}ÑÙ"/ñ #
Ø)ð#
à)ð#
ð ñ#
ˆð —N‘N×)Ñ)¨bÐ)Ó1ˆ	ð Ò%Ø!×<Ñ<¸^×[jÑ[jÐklÕ[mÐ<ÓnˆNØ)-¯©×)AÑ)AˆI�oÑ&ç"Ü(Ø#Ø—~‘~Ø"×-Ñ-Ø%×3Ñ3ô	ð ð Ðr+   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r"   rJ  )r&   r'   s   "€r(   r)   r�  a  s   ø‡ ‚ ñ Ñò r+   )r‘  r`  rè   )NFN)rP   rQ   rR   rS   r0   r   r   rM   rF   r˜   rµ  rW  rT   rU   rV   rW   s   @@r(   r‹  r‹  a  s[   ù‡ € ÷ó ð Ø÷B
ñ B
ó ó ðB
ðH ‡]‚]ƒ_÷6ñ 6ó ð6÷o … r+   r‹  rI   )rß   )r‹  r_  r2  )AÚcollections.abcr   Údataclassesr   rF   r   Úactivationsr   Ú
generationr   r   Úintegrationsr	   r
   Úmasking_utilsr   Úmodeling_layersr   Úmodeling_outputsr   r   Úmodeling_rope_utilsr   r   Úmodeling_utilsr   r   Úprocessing_utilsr   Úutilsr   r   r   r   Úutils.deprecationr   Úutils.genericr   r   Úutils.output_capturingr   Úautor   Úconfiguration_lasrr   r   r¸   r    rY   rœ   r¥   r¯   rÈ   rÊ   rë   r
  r  r2  r[  r_  r}  r5   r…  r‹  Ú__all__r+  r+   r(   Ú<module>rÊ     s¾  ðõ* %Ý !ã Ý å !ß 8ß LÝ 6Ý 9ß Jß Kß FÝ &ß VÓ VÝ 0ß GÝ 5Ý ß @ô+˜RŸY™Yô +ô88< §¡ô 8<òv(ñ Ð-Ó.óó /ðõ2	U÷%ñ2 Ð)Ó*ô<)˜2Ÿ9™9ó <)ó +ð<)ô~E- 2§9¡9ô E-ôP˜RŸY™Yô ô4Ð1ô 4ðn ô*˜/ó *ó ð*ñZ ðôð ô
/Ð7ó 
/ó óð
/ñ ðôô
`
Ð%ó `
óð
`
ðF ôA˜Kó Aó ðAô4N˜Ÿ™ô Nñ
 ðôô
HÐ$ oó Hóð
HòV ?‚r+   