+
    œ°³j«¦  ã                   ó|  € ^ RI t ^ RIHt ^ RI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 ^R
IHt ^RIHt ^RIHt ^RIHtHtHt ^RIHtH t H!t! ^RI"H#t# ^RI$H%t%H&t&H't' ^RI(H)t)H*t* ^RI+H,t,H-t- ^RI.H/t/ ]'P`                  ! ]14      t2 ! R R]4      t3 ! R R]4      t4 ! R R]4      t5 ! R R]Pl                  4      t7 ! R R]Pl                  4      t8 ! R R]Pl                  4      t9 ! R  R!]Pl                  4      t:R9R" R# llt; ! R$ R%]Pl                  4      t< ! R& R']Pl                  4      t= ! R( R)]4      t> ! R* R+]Pl                  4      t?]& ! R, R-] 4      4       t@R:R. R/ lltA]& ! R0 R1]@4      4       tB]&! R2R37       ! R4 R5]@4      4       tC]&! R6R37       ! R7 R8]@4      4       tD. R;OtER# )<é    N)ÚCallable)Únn)ÚCrossEntropyLoss)Úinitialization)ÚACT2FN)Úfilter_output_hidden_states)Úis_deepspeed_zero3_enabled)Úis_fsdp_managed_module)Úcreate_bidirectional_mask)ÚFlashAttentionKwargs)ÚGradientCheckpointingLayer)ÚBaseModelOutputÚCausalLMOutputÚSequenceClassifierOutput)ÚALL_ATTENTION_FUNCTIONSÚPreTrainedModelÚ*get_torch_context_manager_or_global_device)ÚUnpack)ÚTransformersKwargsÚauto_docstringÚlogging)Úcan_return_tupleÚmerge_with_config_defaults)ÚOutputRecorderÚcapture_outputs©Ú	SEWConfigc                   ó<   a a€ ] tR t^1t oRV 3R lltR tRtVtV ;t# )ÚSEWNoLayerNormConvLayerc                óœ  <€ \         SV `  4        V^ 8”  d   VP                  V^,
          ,          M^V n        VP                  V,          V n        \
        P                  ! V P                  V P                  VP                  V,          VP                  V,          VP                  R7      V n
        \        VP                  ,          V n        R# )r   ©Úkernel_sizeÚstrideÚbiasN)ÚsuperÚ__init__Úconv_dimÚin_conv_dimÚout_conv_dimr   ÚConv1dÚconv_kernelÚconv_strideÚ	conv_biasÚconvr   Úfeat_extract_activationÚ
activation©ÚselfÚconfigÚlayer_idÚ	__class__s   &&&€Úe/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/sew/modeling_sew.pyr&   Ú SEWNoLayerNormConvLayer.__init__2   s—   ø€ Ü‰ÑÔØ<DÀq¼L˜6Ÿ?™?¨8°a­<Ö8ÈaˆÔØ"ŸO™O¨HÕ5ˆÔä—I’IØ×ÑØ×ÑØ×*Ñ*¨8Õ4Ø×%Ñ% hÕ/Ø×!Ñ!ô
ˆŒ	ô ! ×!?Ñ!?Õ@ˆŽó    c                óJ   € V P                  V4      pV P                  V4      pV# ©N)r.   r0   ©r2   Úhidden_statess   &&r6   ÚforwardÚSEWNoLayerNormConvLayer.forward@   s$   € ØŸ	™	 -Ó0ˆØŸ™¨Ó6ˆØÐr8   )r0   r.   r(   r)   ©r   ©	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r&   r=   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r5   Ú__classdict__s   @@r6   r   r   1   s   ù‡ € ÷A÷ò r8   r   c                   ó<   a a€ ] tR t^Ft oRV 3R lltR tRtVtV ;t# )ÚSEWLayerNormConvLayerc                óê  <€ \         SV `  4        V^ 8”  d   VP                  V^,
          ,          M^V n        VP                  V,          V n        \
        P                  ! V P                  V P                  VP                  V,          VP                  V,          VP                  R7      V n
        \
        P                  ! V P                  RR7      V n        \        VP                  ,          V n        R# )r   r!   T)Úelementwise_affineN)r%   r&   r'   r(   r)   r   r*   r+   r,   r-   r.   Ú	LayerNormÚ
layer_normr   r/   r0   r1   s   &&&€r6   r&   ÚSEWLayerNormConvLayer.__init__G   s¯   ø€ Ü‰ÑÔØ<DÀq¼L˜6Ÿ?™?¨8°a­<Ö8ÈaˆÔØ"ŸO™O¨HÕ5ˆÔä—I’IØ×ÑØ×ÑØ×*Ñ*¨8Õ4Ø×%Ñ% hÕ/Ø×!Ñ!ô
ˆŒ	ô Ÿ,š, t×'8Ñ'8ÈTÔRˆŒÜ  ×!?Ñ!?Õ@ˆŽr8   c                ó´   € V P                  V4      pVP                  RR4      pV P                  V4      pVP                  RR4      pV P                  V4      pV# )é   éþÿÿÿéÿÿÿÿ)r.   Ú	transposerO   r0   r;   s   &&r6   r=   ÚSEWLayerNormConvLayer.forwardV   sV   € ØŸ	™	 -Ó0ˆà%×/Ñ/°°BÓ7ˆØŸ™¨Ó6ˆØ%×/Ñ/°°BÓ7ˆàŸ™¨Ó6ˆØÐr8   ©r0   r.   r(   rO   r)   r?   r@   rH   s   @@r6   rK   rK   F   s   ù‡ € ÷A÷ò r8   rK   c                   ó<   a a€ ] tR t^at oRV 3R lltR tRtVtV ;t# )ÚSEWGroupNormConvLayerc                ó   <€ \         SV `  4        V^ 8”  d   VP                  V^,
          ,          M^V n        VP                  V,          V n        \
        P                  ! V P                  V P                  VP                  V,          VP                  V,          VP                  R7      V n
        \        VP                  ,          V n        \
        P                  ! V P                  V P                  RR7      V n        R# )r   r!   T)Ú
num_groupsÚnum_channelsÚaffineN)r%   r&   r'   r(   r)   r   r*   r+   r,   r-   r.   r   r/   r0   Ú	GroupNormrO   r1   s   &&&€r6   r&   ÚSEWGroupNormConvLayer.__init__b   s¹   ø€ Ü‰ÑÔØ<DÀq¼L˜6Ÿ?™?¨8°a­<Ö8ÈaˆÔØ"ŸO™O¨HÕ5ˆÔä—I’IØ×ÑØ×ÑØ×*Ñ*¨8Õ4Ø×%Ñ% hÕ/Ø×!Ñ!ô
ˆŒ	ô ! ×!?Ñ!?Õ@ˆŒäŸ,š,°$×2CÑ2CÐRV×RcÑRcÐlpÔqˆŽr8   c                ól   € V P                  V4      pV P                  V4      pV P                  V4      pV# r:   )r.   rO   r0   r;   s   &&r6   r=   ÚSEWGroupNormConvLayer.forwardr   s2   € ØŸ	™	 -Ó0ˆØŸ™¨Ó6ˆØŸ™¨Ó6ˆØÐr8   rW   r?   r@   rH   s   @@r6   rY   rY   a   s   ù‡ € ÷r÷ ò r8   rY   c                   ó8   a a€ ] tR t^yt oV 3R ltR tRtVtV ;t# )ÚSEWPositionalConvEmbeddingc           	     ó  <€ \         SV `  4        \        P                  ! VP                  VP                  VP
                  VP
                  ^,          VP                  VP                  R7      V n        \        P                  P                  p\        \        P                  P                  R4      '       d%   \        P                  P                  P                  p\        4       '       Ed5   ^ RIpVP                  P!                  V P                  P"                  ^ R7      ;_uu_ 4        V! V P                  R^R7      V n        RRR4       \        V P                  R4      '       dV   V P                  P                  P"                  P$                  pV P                  P                  P"                  P&                  pM,V P                  P(                  pV P                  P*                  pVP                  P-                  W4       VP                  P-                  W4       MV! V P                  R^R7      V n        \/        VP
                  4      V n        \2        VP4                  ,          V n        R#   + '       g   i     EL7; i)rR   )r"   ÚpaddingÚgroupsr#   Úweight_normN©Úmodifier_rankÚweight)ÚnameÚdimÚparametrizations)r%   r&   r   r*   Úhidden_sizeÚnum_conv_pos_embeddingsÚnum_conv_pos_embedding_groupsÚsqueeze_factorr.   Úutilsrg   Úhasattrrm   r	   Ú	deepspeedÚzeroÚGatheredParametersrj   Ú	original0Ú	original1Úweight_gÚweight_vÚregister_external_parameterÚSEWSamePadLayerre   r   r/   r0   )r2   r3   rg   rt   ry   rz   r5   s   &&    €r6   r&   Ú#SEWPositionalConvEmbedding.__init__z   s°  ø€ Ü‰ÑÔÜ—I’IØ×ÑØ×ÑØ×6Ñ6Ø×2Ñ2°aÕ7Ø×7Ñ7Ø×(Ñ(ô
ˆŒ	ô —h‘h×*Ñ*ˆÜ”2—8‘8×,Ñ,¨m×<Ò<ÜŸ(™(×3Ñ3×?Ñ?ˆKä%×'Ó'Ûà—‘×2Ñ2°4·9±9×3CÑ3CÐSTÐ2×UÕUÙ'¨¯	©	¸ÀaÔH�”	÷ Vä�t—y‘yÐ"4×5Ò5ØŸ9™9×5Ñ5×<Ñ<×FÑF�ØŸ9™9×5Ñ5×<Ñ<×FÑF‘àŸ9™9×-Ñ-�ØŸ9™9×-Ñ-�Ø�N‰N×6Ñ6°tÔFØ�N‰N×6Ñ6°tÕFá# D§I¡I°HÀ!ÔDˆDŒIä& v×'EÑ'EÓFˆŒÜ  ×!?Ñ!?Õ@ˆŽ÷ V×UÐUús   Ä*I3É3J	c                ól   € V P                  V4      pV P                  V4      pV P                  V4      pV# r:   )r.   re   r0   r;   s   &&r6   r=   Ú"SEWPositionalConvEmbedding.forwardœ   s2   € ØŸ	™	 -Ó0ˆØŸ™ ]Ó3ˆØŸ™¨Ó6ˆàÐr8   )r0   r.   re   r@   rH   s   @@r6   rc   rc   y   s   ù‡ € õ A÷Dò r8   rc   c                   ó8   a a€ ] tR t^¤t oV 3R ltR tRtVtV ;t# )r|   c                ó`   <€ \         SV `  4        V^,          ^ 8X  d
   ^V n        R# ^ V n        R# )rR   N)r%   r&   Únum_pad_remove)r2   ro   r5   s   &&€r6   r&   ÚSEWSamePadLayer.__init__¥   s)   ø€ Ü‰ÑÔØ#:¸QÕ#>À!Ô#C˜aˆÖÈˆÖr8   c                óZ   € V P                   ^ 8”  d   VRRRV P                   ) 13,          pV# )r   ºNNNN©r‚   r;   s   &&r6   r=   ÚSEWSamePadLayer.forward©   s6   € Ø×Ñ Ô"Ø)¨!¨QÐ0F°4×3FÑ3FÐ2FÐ0FÐ*FÕGˆMØÐr8   r†   r@   rH   s   @@r6   r|   r|   ¤   s   ù‡ € õK÷ò r8   r|   c                   ó8   a a€ ] tR t^¯t oV 3R ltR tRtVtV ;t# )ÚSEWUpsamplingc                ó   <€ \         SV `  4        \        P                  ! VP                  VP                  VP
                  ,          4      V n        \        VP                  ,          V n	        VP
                  V n        R # r:   )
r%   r&   r   ÚLinearrn   rq   Ú
projectionr   r/   r0   ©r2   r3   r5   s   &&€r6   r&   ÚSEWUpsampling.__init__°   sW   ø€ Ü‰ÑÔÜŸ)š) F×$6Ñ$6¸×8JÑ8JÈV×MbÑMbÕ8bÓcˆŒÜ  ×!?Ñ!?Õ@ˆŒØ$×3Ñ3ˆÖr8   c                ó8  € V P                  V4      pV P                  V4      pV P                  ^8”  dg   VP                  4       w  r#pW0P                  ,          pW@P                  ,          pVP	                  W#V P                  V4      pVP	                  W%V4      pV# )é   )rŒ   r0   rq   ÚsizeÚreshape)r2   r<   ÚbszÚsrc_lenÚsrc_embed_dimÚtgt_lenÚtgt_embed_dims   &&     r6   r=   ÚSEWUpsampling.forward¶   sŽ   € ØŸ™¨Ó6ˆØŸ™¨Ó6ˆà×Ñ Ô"à*7×*<Ñ*<Ó*>Ñ'ˆC˜-Ø× 3Ñ 3Õ3ˆGØ)×-@Ñ-@Õ@ˆMØ)×1Ñ1°#À×@SÑ@SÐUbÓcˆMØ)×1Ñ1°#ÀÓNˆMàÐr8   )r0   rŒ   rq   r@   rH   s   @@r6   r‰   r‰   ¯   s   ù‡ € õ4÷ò r8   r‰   c                   óB   a a€ ] tR t^Åt oRtV 3R ltR tR tRtVt	V ;t
# )ÚSEWFeatureEncoderz.Construct the features from raw audio waveformc           	     ó   <€ \         SV `  4        VP                  R 8X  dR   \        V^ R7      .\	        VP
                  ^,
          4       Uu. uF  p\        W^,           R7      NK  	  up,           pMYVP                  R8X  d0   \	        VP
                  4       Uu. uF  p\        WR7      NK  	  ppM\        RVP                   R24      h\        P                  ! V4      V n        RV n        RV n        R# u upi u upi )Úgroup)r4   Úlayerz`config.feat_extract_norm` is z), but has to be one of ['group', 'layer']FTN)r%   r&   Úfeat_extract_normrY   ÚrangeÚnum_feat_extract_layersr   rK   Ú
ValueErrorr   Ú
ModuleListÚconv_layersÚgradient_checkpointingÚ_requires_grad)r2   r3   Úir£   r5   s   &&  €r6   r&   ÚSEWFeatureEncoder.__init__È   sï   ø€ Ü‰ÑÔà×#Ñ# wÔ.Ü0°À!ÔDÐEÜINÈv×OmÑOmÐpqÕOqÔIróIÙIrÀAÔ'¨¸Q½×?ÑIrñIõ ‰Kð ×%Ñ%¨Ô0ÜNSÐTZ×TrÑTrÔNsÓtÑNsÈÔ0°×DÑNsˆKÐtˆKäØ0°×1IÑ1IÐ0JÐJsÐtóð ô Ÿ=š=¨Ó5ˆÔØ&+ˆÔ#Ø"ˆÖùòIùò us   ÁC6ÂC;c                óP   € V P                  4        F
  pR Vn        K  	  R V n        R# )FN)Ú
parametersÚrequires_gradr¥   ©r2   Úparams   & r6   Ú_freeze_parametersÚ$SEWFeatureEncoder._freeze_parametersÙ   s#   € Ø—_‘_Ö&ˆEØ"'ˆEÖñ 'à#ˆÖr8   c                ó¤   € VR,          pV P                   '       d   V P                  '       d   RVn        V P                   F  pV! V4      pK  	  V# )r…   T©r…   N)r¥   Útrainingrª   r£   )r2   Úinput_valuesr<   Ú
conv_layers   &&  r6   r=   ÚSEWFeatureEncoder.forwardÞ   sL   € Ø$ WÕ-ˆð ××Ð 4§=§= =Ø*.ˆMÔ'à×*Ô*ˆJÙ& }Ó5ŠMñ +ð Ðr8   )r¥   r£   r¤   )rA   rB   rC   rD   Ú__doc__r&   r­   r=   rE   rF   rG   rH   s   @@r6   rš   rš   Å   s   ù‡ € Ù8õ#ò"$÷

ò 
r8   rš   c                ó  € V ^8„  d   QhR\         P                  R\        P                  R\        P                  R\        P                  R\        P                  R,          R\        R,          R\        R	\
        \        ,          /# )
rR   ÚmoduleÚqueryÚkeyÚvalueÚattention_maskNÚscalingÚdropoutÚkwargs)r   ÚModuleÚtorchÚTensorÚfloatr   r   )Úformats   "r6   Ú__annotate__rÄ   ë   s{   € ÷ %ñ %Ü�I‰Ið%ä�<‰<ð%ô 
�‰ð%ô �<‰<ð	%ô
 —L‘L 4Õ'ð%ô �T�\ð%ô ð%ô Ô'Õ(ñ%r8   c                 ó¶  € Vf   VP                  R4      R,          p\        P                  ! WP                  ^^4      4      V,          pVe	   W„,           p\        P
                  P                  VRR7      p\        P
                  P                  W†V P                  R7      p\        P                  ! Wƒ4      p	V	P                  ^^4      P                  4       p	W˜3# )N©rl   )Úpr±   rT   ç      à¿)
r‘   rÀ   ÚmatmulrU   r   Ú
functionalÚsoftmaxr½   r±   Ú
contiguous)
r·   r¸   r¹   rº   r»   r¼   r½   r¾   Úattn_weightsÚattn_outputs
   &&&&&&&,  r6   Úeager_attention_forwardrÏ   ë   s±   € ð ‚Ø—*‘*˜R“. DÕ(ˆô —<’< §}¡}°Q¸Ó':Ó;¸gÕE€LàÒ!Ø#Õ4ˆä—=‘=×(Ñ(¨¸2Ð(Ó>€LÜ—=‘=×(Ñ(¨È6Ï?É?Ð(Ó[€Lä—,’,˜|Ó3€KØ×'Ñ'¨¨1Ó-×8Ñ8Ó:€KàÐ$Ð$r8   c                   ó\   a a€ ] tR tRt oRtRV3R lV 3R llltR	V3R lR lltRtVtV ;t	# )
ÚSEWAttentioni  z=Multi-headed attention from 'Attention Is All You Need' paperc                óR   <€ V ^8„  d   QhRS[ RS[ RS[RS[RS[RS[RS[R,          /# )	rR   Ú	embed_dimÚ	num_headsr½   Ú
is_decoderr$   Ú	is_causalr3   N)ÚintrÂ   Úboolr   )rÃ   rI   s   "€r6   rÄ   ÚSEWAttention.__annotate__
  s_   ø€ ÷ Cñ CáðCñ ðCñ ð	Cñ
 ðCñ ðCñ ðCñ ˜DÕ ñCr8   c                ó  <€ \         SV `  4        Wn        W n        W0n        W,          V n        Wpn        V P
                  V,          V P                  8w  d   \        R V P                   RV R24      hV P
                  R,          V n        W@n	        W`n
        \        P                  ! WVR7      V n        \        P                  ! WVR7      V n        \        P                  ! WVR7      V n        \        P                  ! WVR7      V n        R# )z;embed_dim must be divisible by num_heads (got `embed_dim`: z and `num_heads`: z).)r$   NrÈ   )r%   r&   rÓ   rÔ   r½   Úhead_dimr3   r¡   r¼   rÕ   rÖ   r   r‹   Úk_projÚv_projÚq_projÚout_proj)	r2   rÓ   rÔ   r½   rÕ   r$   rÖ   r3   r5   s	   &&&&&&&&€r6   r&   ÚSEWAttention.__init__
  sÎ   ø€ ô 	‰ÑÔØ"ŒØ"ŒØŒØ!Õ.ˆŒØŒà�M‰M˜IÕ%¨$¯.©.Ô8ÜØMÈdÏnÉnÐM]Ø$ Y K¨rð3óð ð —}‘} dÕ*ˆŒØ$ŒØ"Œä—i’i 	¸4Ô@ˆŒÜ—i’i 	¸4Ô@ˆŒÜ—i’i 	¸4Ô@ˆŒÜŸ	š	 )¸TÔBˆŽr8   c                ó   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  R,          RS[R,          RS[S[,          RS[S[ P                  S[ P                  R,          3,          /# )rR   r<   Úkey_value_statesNr»   Úoutput_attentionsr¾   Úreturn)rÀ   rÁ   rØ   r   r   Útuple)rÃ   rI   s   "€r6   rÄ   rÙ   )  s~   ø€ ÷ 0)ñ 0)á—|‘|ð0)ñ  Ÿ,™,¨Õ-ð0)ñ Ÿ™ tÕ+ð	0)ñ
   $�;ð0)ñ Ñ-Õ.ð0)ñ 
‰u�|‰|™UŸ\™\¨DÕ0Ð0Õ	1ñ0)r8   c           	     ó  € VRJp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'       d   TMTp
. V
P                   RR ORNV P                  N5pV P                  V
4      P                  V4      P	                  ^^4      pV P                  V
4      P                  V4      P	                  ^^4      p\        P                  ! V P                  P                  \        4      pT! V V	VVV3RV P                  '       g   RMV P                  RV P                  RV/VB w  ppVP                  ! . VORN5!  P!                  4       pV P#                  V4      pVV3# )z#Input shape: Batch x Time x ChannelNr½   ç        r¼   rã   rT   )ÚshaperÛ   rÞ   ÚviewrU   rÜ   rÝ   r   Úget_interfacer3   Ú_attn_implementationrÏ   r±   r½   r¼   r’   rÌ   rß   )r2   r<   râ   r»   rã   r¾   Úis_cross_attentionÚinput_shapeÚhidden_shapeÚquery_statesÚcurrent_statesÚkv_shapeÚ
key_statesÚvalue_statesÚattention_interfacerÎ   rÍ   s   &&&&&,           r6   r=   ÚSEWAttention.forward)  s–  € ð .°TÐ9Ðð $×)Ñ)¨#¨2Ð.ˆà8˜Ð8 bÐ8¨$¯-©-Ñ8ˆð —{‘{ =Ó1×6Ñ6°|ÓD×NÑNÈqÐRSÓTˆç-?Ñ)À]ˆØB�^×)Ñ)¨#¨2Ð.ÐB°ÐB°D·M±MÑBˆØ—[‘[ Ó0×5Ñ5°hÓ?×IÑIÈ!ÈQÓOˆ
Ø—{‘{ >Ó2×7Ñ7¸ÓA×KÑKÈAÈqÓQˆä(?×(MÒ(MØ�K‰K×,Ñ,Ô.Eó)
Ðñ %8ØØØØØñ
%
ð  $Ÿ}Ÿ}˜}‘C°$·,±,ð
%
ð —L‘Lð
%
ð 0ð
%
ð ñ
%
Ñ!ˆ�\ð "×)Ò)Ð;¨;Ð;¸Ó;×FÑFÓHˆØ—m‘m KÓ0ˆà˜LÐ(Ð(r8   )r3   r½   rÓ   rÛ   rÖ   rÕ   rÜ   rÔ   rß   rÞ   r¼   rÝ   )rç   FTFN)NNF)
rA   rB   rC   rD   rµ   r&   r=   rE   rF   rG   rH   s   @@r6   rÑ   rÑ     s#   ù‡ € ÙG÷Cõ C÷>0)÷ 0)ò 0)r8   rÑ   c                   ó8   a a€ ] tR tRt oV 3R ltR tRtVtV ;t# )ÚSEWFeedForwardi\  c                ó  <€ \         SV `  4        \        P                  ! VP                  4      V n        \        P                  ! VP                  VP                  4      V n	        \        VP                  \        4      '       d   \        VP                  ,          V n        MVP                  V n        \        P                  ! VP                  VP                  4      V n        \        P                  ! VP                   4      V n        R # r:   )r%   r&   r   ÚDropoutÚactivation_dropoutÚintermediate_dropoutr‹   rn   Úintermediate_sizeÚintermediate_denseÚ
isinstanceÚ
hidden_actÚstrr   Úintermediate_act_fnÚoutput_denseÚhidden_dropoutÚoutput_dropoutr�   s   &&€r6   r&   ÚSEWFeedForward.__init__]  s®   ø€ Ü‰ÑÔÜ$&§J¢J¨v×/HÑ/HÓ$IˆÔ!ä"$§)¢)¨F×,>Ñ,>À×@XÑ@XÓ"YˆÔÜ�f×'Ñ'¬×-Ò-Ü'-¨f×.?Ñ.?Õ'@ˆDÕ$à'-×'8Ñ'8ˆDÔ$äŸIšI f×&>Ñ&>À×@RÑ@RÓSˆÔÜ Ÿjšj¨×)>Ñ)>Ó?ˆÖr8   c                ó°   € V P                  V4      pV P                  V4      pV P                  V4      pV P                  V4      pV P	                  V4      pV# r:   )rý   r  rû   r  r  r;   s   &&r6   r=   ÚSEWFeedForward.forwardj  sX   € Ø×/Ñ/°Ó>ˆØ×0Ñ0°Ó?ˆØ×1Ñ1°-Ó@ˆà×)Ñ)¨-Ó8ˆØ×+Ñ+¨MÓ:ˆØÐr8   )r  rý   rû   r  r  r@   rH   s   @@r6   r÷   r÷   \  s   ù‡ € õ@÷ò r8   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# )ÚSEWEncoderLayerit  c                ó¸  <€ \         SV `  4        \        VP                  VP                  VP
                  R VR7      V n        \        P                  ! VP                  4      V n
        \        P                  ! VP                  VP                  R7      V n        \        V4      V n        \        P                  ! VP                  VP                  R7      V n        R# )F)rÓ   rÔ   r½   rÕ   r3   ©ÚepsN)r%   r&   rÑ   rn   Únum_attention_headsÚattention_dropoutÚ	attentionr   rù   r  r½   rN   Úlayer_norm_epsrO   r÷   Úfeed_forwardÚfinal_layer_normr�   s   &&€r6   r&   ÚSEWEncoderLayer.__init__u  s�   ø€ Ü‰ÑÔÜ%Ø×(Ñ(Ø×0Ñ0Ø×,Ñ,ØØô
ˆŒô —z’z &×"7Ñ"7Ó8ˆŒÜŸ,š, v×'9Ñ'9¸v×?TÑ?TÔUˆŒÜ*¨6Ó2ˆÔÜ "§¢¨V×-?Ñ-?ÀV×EZÑEZÔ [ˆÖr8   c                ór   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[S[,          /# )rR   r<   r»   Nr¾   )rÀ   rÁ   r   r   )rÃ   rI   s   "€r6   rÄ   ÚSEWEncoderLayer.__annotate__„  s<   ø€ ÷ ñ á—|‘|ðñ Ÿ™ tÕ+ðñ Ñ+Õ,ñ	r8   c                óÜ   € TpV P                   ! V3R V/VB w  rV P                  V4      pWA,           pV P                  V4      pWP                  V4      ,           pV P	                  V4      pV# )r»   )r  r½   rO   r  r  )r2   r<   r»   r¾   Úattn_residualÚ_s   &&&,  r6   r=   ÚSEWEncoderLayer.forward„  sr   € ð &ˆØŸ>š>¨-ÑaÈÐaÐZ`ÑaÑˆØŸ™ ]Ó3ˆØ%Õ5ˆàŸ™¨Ó6ˆØ%×(9Ñ(9¸-Ó(HÕHˆØ×-Ñ-¨mÓ<ˆàÐr8   )r  r½   r  r  rO   r:   r@   rH   s   @@r6   r	  r	  t  s   ù‡ € õ\÷÷ ò r8   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# )Ú
SEWEncoderi–  c                ó"  <€ \         SV `  4        Wn        \        V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                   ! \#        VP$                  4       Uu. uF  p\'        V4      NK  	  up4      V n        \+        V4      V n        RV n        R# u upi )r  FN)r%   r&   r3   rc   Úpos_conv_embedr   Ú	AvgPool1drq   ÚpoolrN   rn   r  rO   rù   r  r½   r¢   rŸ   Únum_hidden_layersr	  Úlayersr‰   Úupsampler¤   )r2   r3   r  r5   s   && €r6   r&   ÚSEWEncoder.__init__—  s½   ø€ Ü‰ÑÔØŒÜ8¸Ó@ˆÔÜ—L’L ×!6Ñ!6¸×8MÑ8MÓNˆŒ	ÜŸ,š, v×'9Ñ'9¸v×?TÑ?TÔUˆŒÜ—z’z &×"7Ñ"7Ó8ˆŒÜ—m’mÄeÈF×LdÑLdÔFeÓ$fÑFeÀ¤_°VÖ%<ÑFeÑ$fÓgˆŒÜ% fÓ-ˆŒØ&+ˆÖ#ùò %gs   ÃDc                ó0   <€ V ^8„  d   QhRS[ S[,          /# )rR   r¾   )r   r   )rÃ   rI   s   "€r6   rÄ   ÚSEWEncoder.__annotate__¢  s    ø€ ÷ 7@ñ 7@ñ Ñ+Õ,ñ	7@r8   c           	     ó6  € Ve½   VP                  R4      P                  ^^VP                  ^,          4      pRW( &   \        P                  P                  VP                  4       P                  ^4      V P                  P                  V P                  P                  R7      P                  ^4      P                  4       pVP                  ^,          pVP                  ^^4      pV P                  V4      pV P                  V4      p\        VP                  R4      VP                  R4      4      pVRR V13,          VRR V13,          ,           pVP                  ^^4      p\!        V P                  WR7      pV P#                  V4      pV P%                  V4      p\'        4       ;'       g    \)        V 4      p	V P*                   Fb  p
\,        P.                  ! . 4      pV P0                  ;'       d    W°P                  P2                  8  pV'       d   V	'       g   KW  V
! V3RV/VB pKd  	  V P5                  V4      pVP                  ^,          V8  d<   \        P                  P7                  V^ ^ ^ WQP                  ^,          ,
          34      p\9        VR7      # )Nrç   )r"   r#   .)r3   Úinputs_embedsr»   r»   ©Úlast_hidden_staterT   )Ú	unsqueezeÚrepeatrè   r   rÊ   Ú
max_pool1drÂ   r3   rq   ÚsqueezeÚlongrU   r  r  Úminr‘   r   rO   r½   r	   r
   r!  rÀ   Úrandr±   Ú	layerdropr"  Úpadr   )r2   r<   r»   r¾   Úexpand_attention_maskÚn_input_timestepsÚposition_embeddingsÚpooled_hidden_statesÚ
min_lengthÚsynced_gpusr�   Údropout_probabilityÚskip_the_layers   &&&,         r6   r=   ÚSEWEncoder.forward¢  sE  € ð Ò%à$2×$<Ñ$<¸RÓ$@×$GÑ$GÈÈ1Èm×NaÑNaÐbcÕNdÓ$eÐ!Ø47ˆMÐ0Ñ1ô —‘×(Ñ(Ø"×(Ñ(Ó*×4Ñ4°QÓ7Ø $§¡× :Ñ :ØŸ;™;×5Ñ5ð )ó ÷
 ‘˜“ß‘“ð ð *×/Ñ/°Õ2Ðà%×/Ñ/°°1Ó5ˆØ"×1Ñ1°-Ó@ÐØ#Ÿy™y¨Ó7ÐÜÐ,×1Ñ1°"Ó5Ð7K×7PÑ7PÐQSÓ7TÓUˆ
Ø,¨S°+°:°+Ð-=Õ>ÐATÐUXÐZeÐ[eÐZeÐUeÕAfÕfˆØ%×/Ñ/°°1Ó5ˆä2Ø—;‘;¨mô
ˆð Ÿ™¨Ó6ˆØŸ™ ]Ó3ˆä0Ó2×RÐRÔ6LÈTÓ6Rˆà—[”[ˆEä"'§*¢*¨R£.Ðà!Ÿ]™]×ZÐZÐ/BÇ[Á[×EZÑEZÑ/ZˆNß!§[¡[á % mÑ ]ÀNÐ ]ÐV\Ñ ]’ñ !ð Ÿ™ mÓ4ˆØ×Ñ˜qÕ!Ð$5Ô5ÜŸM™M×-Ñ-¨m¸aÀÀAÐGX×[nÑ[nÐopÕ[qÕGqÐ=rÓsˆMä°Ô?Ð?r8   )r3   r½   r¤   rO   r!  r  r  r"  r:   r@   rH   s   @@r6   r  r  –  s   ù‡ € õ	,÷7@÷ 7@ò 7@r8   r  c            	       óÄ   a a€ ] tR tRt oRtRtRtRtRtRt	Rt
R]R]! ]^RR	7      /t]P                   ! 4       V 3R
 l4       tV3R lR ltV3R lR ltV3R ltRtVtV ;t# )ÚSEWPreTrainedModeliÜ  Úsewr²   ÚaudioTr<   Ú
attentionsÚencoder)ÚindexÚ
layer_namec           
     ó|  <€ \         SV `  V4       \        V\        4      '       d³   \        P
                  ! VP                  P                  ^ ^\        P                  ! ^VP                  P                  ^ ,          VP                  P                  ,          ,          4      ,          R7       \        P                  ! VP                  P                  ^ 4       R# \        V\        P                  4      '       Ed   \!        4       '       dé   ^ RIp\%        VR4      '       dy   \%        VR4      '       dg   VP&                  P)                  VP*                  VP,                  .^ R7      ;_uu_ 4        \        P.                  ! VP                  4       RRR4       R# VP&                  P)                  VP                  ^ R7      ;_uu_ 4        \        P.                  ! VP                  4       RRR4       R# \        P.                  ! VP                  4       R# R#   + '       g   i     R# ; i  + '       g   i     R# ; i)zInitialize the weights)ÚmeanÚstdNrz   ry   rh   )r%   Ú_init_weightsrþ   rc   ÚinitÚnormal_r.   rj   ÚmathÚsqrtr"   Úin_channelsÚ	constant_r$   r   r*   r	   rt   rs   ru   rv   rz   ry   Úkaiming_normal_)r2   r·   rt   r5   s   && €r6   rG  Ú SEWPreTrainedModel._init_weightsë  sr  ø€ ô 	‰Ñ˜fÔ%Ü�fÔ8×9Ò9Ü�LŠLØ—‘×"Ñ"ØØœŸ	š	 ! v§{¡{×'>Ñ'>¸qÕ'AÀFÇKÁK×D[ÑD[Õ'[Õ"\Ó]Õ]õô
 �NŠN˜6Ÿ;™;×+Ñ+¨QÖ/Ü˜¤§	¡	×*Ó*Ü)×+Ò+Û ä˜6 :×.Ò.´7¸6À:×3NÒ3NØ"Ÿ™×:Ñ:¸F¿O¹OÈVÏ_É_Ð;]ÐmnÐ:×oÕoÜ×,Ò,¨V¯]©]Ô;÷ pÑoð #Ÿ™×:Ñ:¸6¿=¹=ÐXYÐ:×ZÕZÜ×,Ò,¨V¯]©]Ô;÷ [ÑZô ×$Ò$ V§]¡]Ö3ñ +÷
 p×oÐoú÷ [×ZÐZús   Å-!HÇ!H*ÈH'	È*H;	c                óD   <€ V ^8„  d   QhRS[ P                  S[,          /# )rR   Úinput_lengths)rÀ   Ú
LongTensorr×   )rÃ   rI   s   "€r6   rÄ   ÚSEWPreTrainedModel.__annotate__  s    ø€ ÷ ñ ¹e×>NÑ>NÑQTÕ>Tñ r8   c                ó˜   € R p\        V P                  P                  V P                  P                  4       F  w  r4V! WV4      pK  	  V# )z8
Computes the output length of the convolutional layers
c                 óN   € \         P                  ! W,
          VR R7      ^,           # )Úfloor)Úrounding_mode)rÀ   Údiv)Úinput_lengthr"   r#   s   &&&r6   Ú_conv_out_lengthÚMSEWPreTrainedModel._get_feat_extract_output_lengths.<locals>._conv_out_length  s    € ô —9’9˜\Õ7¸ÈwÔWÐZ[Õ[Ð[r8   )Úzipr3   r+   r,   )r2   rQ  rZ  r"   r#   s   &&   r6   Ú _get_feat_extract_output_lengthsÚ3SEWPreTrainedModel._get_feat_extract_output_lengths  sG   € ò
	\ô
 $' t§{¡{×'>Ñ'>ÀÇÁ×@WÑ@WÖ#XÑˆKÙ,¨]ÈÓPŠMñ $Yð Ðr8   c                ó:   <€ V ^8„  d   QhRS[ RS[P                  /# )rR   Úfeature_vector_lengthr»   )r×   rÀ   rR  )rÃ   rI   s   "€r6   rÄ   rS    s&   ø€ ÷ Hñ HÉð HÑ]b×]mÑ]mñ Hr8   c                ó  € V P                  VP                  R4      4      P                  \        P                  4      p\        P
                  ! WP                  R7      pVP                  ^ 4      VP                  ^4      8  # )r�   )ÚdevicerT   )r]  ÚsumÚtorÀ   r.  Úarangerb  r*  )r2   r`  r»   Úoutput_lengthsÚattention_idss   &&&  r6   Ú"_get_feature_vector_attention_maskÚ5SEWPreTrainedModel._get_feature_vector_attention_mask  sh   € Ø×>Ñ>¸~×?QÑ?QÐRTÓ?UÓV×YÑYÔZ_×ZdÑZdÓeˆô ŸšÐ%:×CXÑCXÔYˆØ×&Ñ& qÓ)¨N×,DÑ,DÀQÓ,GÑGÐGr8   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # ©rR   r3   r   )rÃ   rI   s   "€r6   rÄ   rS  Ü  s   ø‡ ‚ áÑò r8   © )rA   rB   rC   rD   Úbase_model_prefixÚmain_input_nameÚinput_modalitiesÚsupports_gradient_checkpointingÚ_supports_flash_attnÚ_supports_sdpaÚ_supports_flex_attnr	  r   rÑ   Ú_can_record_outputsrÀ   Úno_gradrG  r]  rh  Ú__annotate_func__rE   rF   rG   rH   s   @@r6   r=  r=  Ü  s‚   ù‡ € ð ÐØ$€OØÐØ&*Ð#ØÐØ€NØÐà˜Ø‘n \¸ÀyÔQðÐð
 ‡]‚]ƒ_ô4ó ð4÷.ð ÷Hð H÷m … r8   r=  c                ó¸   € V ^8„  d   QhR\         \        \        3,          R\        R\        R\        P                  R,          R\        R\
        P                  /# )rR   rè   Ú	mask_probÚmask_lengthr»   NÚ	min_masksrä   )rå   r×   rÂ   rÀ   rR  ÚnpÚndarray)rÃ   s   "r6   rÄ   rÄ     sc   € ÷ tñ tÜ””c��?ðtäðtô ðtô ×$Ñ$ tÕ+ð	tô
 ðtô ‡Z�Zñtr8   c           	     ó^  aaaaa€ V w  poS^8  d   \        R4      hSS8”  d   \        RS RS R24      h\        P                  P                  ^4      P	                  4       oVVVVV3R lpVe.   VP                  4       P                  R	4      P                  4       M\        V4       Uu. uF  pSNK  	  upp\        P                  ! VS3\        R7      p	. p
V! S4      pV^ 8X  d   V	# V FÌ  pV! V4      p\        P                  P                  \        P                  ! VS^,
          ,
          4      VRR7      p\        V4      ^ 8X  d   S^,
          pM	V^ ,          p\        P                  ! V\        P                  ! W½,
          \        P                   R7      V,          .4      pV
P#                  V4       KÎ  	  \        P$                  ! V
4      p
\        P&                  ! V
R
,          W[S34      p
V
P)                  W[S,          4      p
\        P                  ! S4      R,          p\        P&                  ! VW[S34      P)                  W[S,          4      pV
V,           p
V
P+                  4       S^,
          8”  d   S^,
          WªS^,
          8„  &   \        P,                  ! Wš^R	4       V	# u upi )a2  
Computes random mask spans for a given shape. Used to implement [SpecAugment: A Simple Data Augmentation Method for
ASR](https://huggingface.co/papers/1904.08779). Note that this method is not optimized to run on TPU and should be run on
CPU as part of the preprocessing during training.

Args:
    shape: The shape for which to compute masks. This should be of a tuple of size 2 where
           the first element is the batch size and the second element is the length of the axis to span.
    mask_prob:  The percentage of the whole axis (between 0 and 1) which will be masked. The number of
                independently generated mask spans of length `mask_length` is computed by
                `mask_prob*shape[1]/mask_length`. Note that due to overlaps, `mask_prob` is an upper bound and the
                actual percentage will be smaller.
    mask_length: size of the mask
    min_masks: minimum number of masked spans
    attention_mask: A (right-padded) attention mask which independently shortens the feature axis of
                    each batch dimension.
z&`mask_length` has to be bigger than 0.zO`mask_length` has to be smaller than `sequence_length`, but got `mask_length`: z and `sequence_length`: Ú`c                óì   <€ \        SV ,          S,          S,           4      p\        VS4      pVS,          S8”  d
   SS,          pV S^,
          ,
          V8  d   \        V S^,
          ,
          ^ 4      pV# )z;Given input length, compute how many spans should be masked)r×   Úmax)rY  Únum_masked_spanÚepsilonry  rx  rz  Úsequence_lengths   & €€€€€r6   Úcompute_num_masked_spanÚ6_compute_mask_indices.<locals>.compute_num_masked_spanA  so   ø€ ä˜i¨,Õ6¸ÕDÀwÕNÓOˆÜ˜o¨yÓ9ˆð ˜[Õ(¨?Ô:Ø-°Õ<ˆOð ˜;¨�?Õ+¨oÔ=Ü! ,°+Àµ/Õ"BÀAÓFˆOàÐr8   ©ÚdtypeF)ÚreplacerT   )r…   r…   N)NNr…   )r¡   r{  Úrandomr0  ÚitemÚdetachrc  ÚtolistrŸ   ÚzerosrØ   Úchoicere  ÚlenÚconcatenateÚonesÚint32ÚappendÚarrayÚbroadcast_tor’   r€  Úput_along_axis)rè   rx  ry  r»   rz  Ú
batch_sizer„  r  rQ  Úspec_aug_maskÚspec_aug_mask_idxsÚmax_num_masked_spanrY  r�  Úspec_aug_mask_idxÚdummy_mask_idxÚoffsetsr‚  rƒ  s   &ff&f            @@r6   Ú_compute_mask_indicesrž    sŽ  ü€ ð0 #(Ñ€J�à�Q„ÜÐAÓBÐBà�_Ô$ÜØ]Ð^iÐ]jØ& Ð&7°qð:ó
ð 	
ô �i‰i�n‰n˜QÓ×$Ñ$Ó&€G÷ñ ð$ Ò%ð 	×ÑÓ×#Ñ# BÓ'×.Ñ.Ô0ä',¨ZÔ'8Ó9Ñ'8 !‹oÑ'8Ñ9ð ô —H’H˜j¨/Ð:Ä$ÔG€MØÐá1°/ÓBÐà˜aÔØÐã%ˆá1°,Ó?ˆô ŸI™I×,Ñ,Ü�IŠI�l k°A¥oÕ6Ó7¸ÐRWð -ó 
Ðô Ð Ó! QÔ&ð -¨qÕ0‰Nà.¨qÕ1ˆNäŸNšNØ¤§¢Ð(;Õ(MÔUW×U]ÑU]Ô ^ÐaoÕ oÐpó
Ðð 	×!Ñ!Ð"3Ö4ñ/ &ô2 ŸšÐ"4Ó5Ðô ŸšØ˜:Õ&¨È+Ð(VóÐð ,×3Ñ3°JÐVaÕ@aÓbÐô �iŠi˜Ó$ ]Õ3€GÜ�oŠo˜g¨
ÈÐ'UÓV×^Ñ^Ø¨+Õ5ó€Gð ,¨gÕ5Ðð ×ÑÓ /°AÕ"5Ô5ØGVÐYZÕGZÐ°À!Õ0CÑCÑDô ×Ò�m¸¸BÔ?àÐùòw :s   Â+J*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t]]! RR7      ]RV3R lR	 ll4       4       4       t	R
t
VtV ;t# )ÚSEWModeli’  c                ó    <€ V ^8„  d   QhRS[ /# rk  r   )rÃ   rI   s   "€r6   rÄ   ÚSEWModel.__annotate__”  s   ø€ ÷ ñ ™yñ r8   c                óú  <€ \         SV `  V4       Wn        \        V4      V n        \
        P                  ! VP                  R,          VP                  R7      V n	        VP                  R,          VP                  8g  V n        V P                  '       d8   \
        P                  ! VP                  R,          VP                  4      V n        \
        P                  ! VP                  4      V n        VP"                  R8”  g   VP$                  R8”  dH   \
        P&                  ! \(        P*                  ! VP                  4      P-                  4       4      V n        \1        V4      V n        V P5                  4        R# )r�   r  rç   NrT   )r%   r&   r3   rš   Úfeature_extractorr   rN   r'   r  rO   rn   Úproject_featuresr‹   Úfeature_projectionrù   Úfeat_proj_dropoutÚfeature_dropoutÚmask_time_probÚmask_feature_probÚ	ParameterrÀ   rÁ   Úuniform_Úmasked_spec_embedr  rA  Ú	post_initr�   s   &&€r6   r&   ÚSEWModel.__init__”  s   ø€ Ü‰Ñ˜Ô ØŒÜ!2°6Ó!:ˆÔÜŸ,š, v§¡°rÕ':À×@UÑ@UÔVˆŒà &§¡°Õ 3°v×7IÑ7IÑ IˆÔØ× × Ð Ü&(§i¢i°·±ÀÕ0CÀV×EWÑEWÓ&XˆDÔ#Ü!Ÿzšz¨&×*BÑ*BÓCˆÔà× Ñ  3Ô&¨&×*BÑ*BÀSÔ*HÜ%'§\¢\´%·,²,¸v×?QÑ?QÓ2R×2[Ñ2[Ó2]Ó%^ˆDÔ"ä! &Ó)ˆŒð 	�‰Ör8   c                ó„   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  R,          /# )rR   r<   Úmask_time_indicesNr»   )rÀ   ÚFloatTensorrR  )rÃ   rI   s   "€r6   rÄ   r¢  ¨  sE   ø€ ÷ ,ñ ,á×(Ñ(ð,ñ !×,Ñ,¨tÕ3ð,ñ ×(Ñ(¨4Õ/ñ	,r8   c                óò  € \        V P                  RR4      '       g   V# VP                  4       w  rEpVe)   V P                  P	                  VP
                  4      W&   MÑV P                  P                  ^ 8”  d·   V P                  '       d¥   \        WE3V P                  P                  V P                  P                  VV P                  P                  R7      p\        P                  ! W!P                  \        P                  R7      pV P                  P	                  VP
                  4      W&   V P                  P                  ^ 8”  d­   V P                  '       d›   \        WF3V P                  P                  V P                  P                   V P                  P"                  R7      p\        P                  ! WqP                  \        P                  R7      pVR,          P%                  RVR4      p^ W&   V# )zŠ
Masks extracted features along time axis and/or along feature axis according to
[SpecAugment](https://huggingface.co/papers/1904.08779).
Úapply_spec_augmentT)rx  ry  r»   rz  )rb  r‡  )rx  ry  rz  r°   rT   )Úgetattrr3   r‘   r­  rd  r‡  r©  r±   rž  Úmask_time_lengthÚmask_time_min_masksrÀ   Útensorrb  rØ   rª  Úmask_feature_lengthÚmask_feature_min_masksÚexpand)r2   r<   r±  r»   r—  rƒ  rn   Úmask_feature_indicess   &&&&    r6   Ú_mask_hidden_statesÚSEWModel._mask_hidden_states¨  sŠ  € ô �t—{‘{Ð$8¸$×?Ò?Ø Ð ð 4A×3EÑ3EÓ3GÑ0ˆ
 [àÒ(à/3×/EÑ/E×/HÑ/HÈ×I\ÑI\Ó/]ˆMÒ,Ø�[‰[×'Ñ'¨!Ô+°··°Ü 5ØÐ-ØŸ+™+×4Ñ4Ø ŸK™K×8Ñ8Ø-ØŸ+™+×9Ñ9ô!Ðô !&§¢Ð->×G[ÑG[Ôch×cmÑcmÔ nÐØ/3×/EÑ/E×/HÑ/HÈ×I\ÑI\Ó/]ˆMÑ,à�;‰;×(Ñ(¨1Ô,°··°ä#8ØÐ)ØŸ+™+×7Ñ7Ø ŸK™K×;Ñ;ØŸ+™+×<Ñ<ô	$Ð ô $)§<¢<Ð0D×MaÑMaÔin×isÑisÔ#tÐ Ø#7¸Õ#@×#GÑ#GÈÈOÐ]_Ó#`Ð Ø23ˆMÑ/àÐr8   F)Útie_last_hidden_statesc                ó¾   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[S[,          RS[S[,          /# )rR   r²   Nr»   r±  r¾   rä   )rÀ   rÁ   r²  r   r   rå   r   )rÃ   rI   s   "€r6   rÄ   r¢  Ù  sl   ø€ ÷ "@ñ "@á—l‘l TÕ)ð"@ñ Ÿ™ tÕ+ð"@ñ !×,Ñ,¨tÕ3ð	"@ñ
 Ñ+Õ,ð"@ñ 
‘Õ	 ñ"@r8   c                óž  € V P                  V4      pVP                  ^^4      pV P                  V4      pV P                  '       d   V P	                  V4      pV P                  V4      pVe$   V P                  VP                  ^,          V4      pV P                  WcR7      pV P                  ! V3RV/VB pVP                  p\        VR7      # )a  
mask_time_indices (`torch.BoolTensor` of shape `(batch_size, sequence_length)`, *optional*):
    Indices to mask extracted features for contrastive loss. When in training mode, model learns to predict
    masked extracted features in *config.proj_codevector_dim* space.
)r±  r»   r(  )r¤  rU   rO   r¥  r¦  r¨  rh  rè   r½  rA  r)  r   )r2   r²   r»   r±  r¾   Úextract_featuresr<   Úencoder_outputss   &&&&,   r6   r=   ÚSEWModel.forwardÖ  sÚ   € ð  ×1Ñ1°,Ó?ÐØ+×5Ñ5°a¸Ó;ÐØŸ?™?Ð+;Ó<Ðà× × Ð Ø#×6Ñ6Ð7GÓHÐØ×,Ñ,Ð-=Ó>ˆàÒ%à!×DÑDÀ]×EXÑEXÐYZÕE[Ð]kÓlˆNà×0Ñ0°Ð0ÓdˆàŸ,š,Øñ
à)ð
ð ñ
ˆð (×9Ñ9ˆä°Ô?Ð?r8   )r3   rA  r¨  r¤  r¦  rO   r­  r¥  ©NN)rA   rB   rC   rD   r&   r½  r   r   r   r=   rE   rF   rG   rH   s   @@r6   r   r   ’  sQ   ù‡ € ÷ó ÷(,ò ,ð\  Ù¨EÔ2Ø÷"@ñ "@ó ó 3ó  ÷"@ð "@r8   r   zk
    SEW Model with a `language modeling` head on top for Connectionist Temporal Classification (CTC).
    )Úcustom_introc                   ó~   a a€ ] tR tRt oR
V3R lV 3R llltR tR tR t]]	RV3R lR ll4       4       t
R	tVtV ;t# )Ú	SEWForCTCiþ  c                ó.   <€ V ^8„  d   QhRS[ R,          /# )rR   Útarget_langN)r   )rÃ   rI   s   "€r6   rÄ   ÚSEWForCTC.__annotate__  s   ø€ ÷ ñ ©C°$­Jñ r8   c                óÌ  <€ \         SV `  V4       \        V4      V n        \        P
                  ! VP                  4      V n        W n        VP                  f   \        RV P                   R24      h\        VR4      '       d   VP                  '       d   VP                  MVP                  p\        P                   ! W1P                  4      V n        V P%                  4        R# )a  
target_lang (`str`, *optional*):
    Language id of adapter weights. Adapter weights are stored in the format adapter.<lang>.safetensors or
    adapter.<lang>.bin. Only relevant when using an instance of [`SEWForCTC`] with adapters. Uses 'eng' by
    default.
NzYou are trying to instantiate zò with a configuration that does not define the vocabulary size of the language model head. Please instantiate the model as follows: `SEWForCTC.from_pretrained(..., vocab_size=vocab_size)`. or define `vocab_size` of your model's configuration.Úadd_adapter)r%   r&   r   r>  r   rù   Úfinal_dropoutr½   rÊ  Ú
vocab_sizer¡   r5   rs   rÍ  Úoutput_hidden_sizern   r‹   Úlm_headr®  )r2   r3   rÊ  rÐ  r5   s   &&& €r6   r&   ÚSEWForCTC.__init__  sÁ   ø€ ô 	‰Ñ˜Ô ä˜FÓ#ˆŒÜ—z’z &×"6Ñ"6Ó7ˆŒà&Ôà×ÑÒ$ÜØ0°·±Ð0@ð AHð Hóð ô *1°¸×)GÒ)GÈF×L^×L^ÐL^ˆF×%Ò%Ðdj×dvÑdvð 	ô —y’yÐ!3×5FÑ5FÓGˆŒð 	�‰Ör8   c                óZ  € \        4       \        P                  ! R4      8X  d   R# V P                  pVe)   \	        V P
                  RR4      f   \        RV R24      hVf1   \	        V P
                  RR4      e   \        P                  R4       R# Ve   V P                  VRR7       R# R# )	a  
This method overwrites [`~PreTrainedModel.tie_weights`] so that adapter weights can be correctly loaded when
passing `target_lang=...` to `from_pretrained(...)`.

This method is **not** supposed to be called by the user and is prone to be changed in the future.
ÚmetaNÚadapter_attn_dimzCannot pass `target_lang`: z- if `config.adapter_attn_dim` is not defined.z)By default `target_lang` is set to 'eng'.T)Ú
force_load)
r   rÀ   rb  rÊ  rµ  r3   r¡   ÚloggerÚinfoÚload_adapter)r2   r¾   rÊ  s   &, r6   Útie_weightsÚSEWForCTC.tie_weights!  sœ   € ô 6Ó7¼5¿<º<ÈÓ;OÔOÙð ×&Ñ&ˆàÒ"¤w¨t¯{©{Ð<NÐPTÓ'UÒ']ÜÐ:¸;¸-ÐGtÐuÓvÐvØÒ ¤W¨T¯[©[Ð:LÈdÓ%SÒ%_Ü�K‰KÐCÖDØÒ$Ø×Ñ˜k°dÐÖ;ñ %r8   c                óN   € V P                   P                  P                  4        R# ©z�
Calling this function will disable the gradient computation for the feature encoder so that its parameter will
not be updated during training.
N©r>  r¤  r­   ©r2   s   &r6   Úfreeze_feature_encoderÚ SEWForCTC.freeze_feature_encoder9  ó   € ð
 	�‰×"Ñ"×5Ñ5Ö7r8   c                óV   € V P                   P                  4        F
  pRVn        K  	  R# ©zº
Calling this function will disable the gradient computation for the base model so that its parameters will not
be updated during training. Only the classification head will be updated.
FN©r>  r©   rª   r«   s   & r6   Úfreeze_base_modelÚSEWForCTC.freeze_base_model@  ó#   € ð
 —X‘X×(Ñ(Ö*ˆEØ"'ˆEÖó +r8   c                ó¾   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[S[,          RS[S[,          /# ©rR   r²   Nr»   Úlabelsr¾   rä   )rÀ   rÁ   r   r   rå   r   )rÃ   rI   s   "€r6   rÄ   rË  J  sc   ø€ ÷ :
ñ :
á—l‘l TÕ)ð:
ñ Ÿ™ tÕ+ð:
ñ —‘˜tÕ#ð	:
ñ
 Ñ+Õ,ð:
ñ 
‘Õ	ñ:
r8   c                óx  € VeL   VP                  4       V P                  P                  8¼  d#   \        RV P                  P                   24      hV P                  ! V3RV/VB pVP
                  pV P                  V4      pV P                  V4      pRpVEen   Ve   TM%\        P                  ! V\        P                  R7      pV P                  VP                  R
4      4      P                  \        P                  4      p	V^ 8¬  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                  P0                  V P                  P2                  V P                  P4                  R7      pRRR4       \7        W‡VP8                  VP:                  R	7      #   + '       g   i     L2; i)a°  
labels (`torch.LongTensor` of shape `(batch_size, target_length)`, *optional*):
    Labels for connectionist temporal classification. Note that `target_length` has to be smaller or equal to
    the sequence length of the output logits. Indices are selected in `[-100, 0, ..., config.vocab_size - 1]`.
    All labels set to `-100` are ignored (masked), the loss is only computed for labels in `[0, ...,
    config.vocab_size - 1]`.
Nz$Label values must be <= vocab_size: r»   r†  )rl   r‡  F)Úenabled)ÚblankÚ	reductionÚzero_infinity©ÚlossÚlogitsr<   r@  rT   )r€  r3   rÏ  r¡   r>  r)  r½   rÑ  rÀ   Ú	ones_liker.  r]  rc  rd  Úmasked_selectr   rÊ   Úlog_softmaxÚfloat32rU   ÚbackendsÚcudnnÚflagsÚctc_lossÚpad_token_idÚctc_loss_reductionÚctc_zero_infinityr   r<   r@  )r2   r²   r»   rë  r¾   Úoutputsr<   ró  rò  rQ  Úlabels_maskÚtarget_lengthsÚflattened_targetsÚ	log_probss   &&&&,         r6   r=   ÚSEWForCTC.forwardH  sß  € ð  Ò &§*¡*£,°$·+±+×2HÑ2HÔ"HÜÐCÀDÇKÁK×DZÑDZÐC[Ð\Ó]Ð]à—(’(Øñ
à)ð
ð ñ
ˆð  ×1Ñ1ˆØŸ™ ]Ó3ˆà—‘˜mÓ,ˆàˆØÓð #1Ò"<‘Ä%Ç/Â/ÐR^Ôfk×fpÑfpÔBqð ð !×AÑAÀ.×BTÑBTÐUWÓBXÓY×\Ñ\Ô]b×]gÑ]gÓhˆMð ! A™+ˆKØ(Ÿ_™_¨RÓ0ˆNØ &× 4Ñ 4°[Ó AÐô Ÿ™×1Ñ1°&¸bÌÏÉÐ1ÓV×`Ñ`ÐabÐdeÓfˆIä—‘×%Ñ%×+Ñ+°EÐ+×:Õ:Ü—}‘}×-Ñ-ØØ%Ø!Ø"ØŸ+™+×2Ñ2Ø"Ÿk™k×<Ñ<Ø"&§+¡+×"?Ñ"?ð .ó �÷ ;ô Ø°G×4IÑ4IÐV]×VhÑVhô
ð 	
÷ ;×:ús   ÆA#H)È)H9	)r½   rÑ  r>  rÊ  r:   rÅ  )rA   rB   rC   rD   r&   rÚ  rà  ræ  r   r   r=   rE   rF   rG   rH   s   @@r6   rÈ  rÈ  þ  sD   ù‡ € ÷õ ò:<ò08ò(ð Ø÷:
ñ :
ó ó ÷:
ð :
r8   rÈ  z’
    SEW Model with a sequence classification head on top (a linear layer over the pooled output) for tasks like
    SUPERB Keyword Spotting.
    c                   ór   a a€ ] tR tRt oV 3R ltR tR t]]]	RV3R lR ll4       4       4       t
RtVtV ;t# )	ÚSEWForSequenceClassificationi‡  c                ó:  <€ \         SV `  V4       \        VR 4      '       d   VP                  '       d   \	        R4      h\        V4      V n        VP                  ^,           pVP                  '       d7   \        P                  ! \        P                  ! V4      V,          4      V n        \        P                  ! VP                  VP                   4      V n        \        P                  ! VP                   VP$                  4      V n        V P)                  4        R# )rÍ  zZSequence classification does not support the use of SEW adapters (config.add_adapter=True)N)r%   r&   rs   rÍ  r¡   r   r>  r   Úuse_weighted_layer_sumr   r«  rÀ   r‘  Úlayer_weightsr‹   rn   Úclassifier_proj_sizeÚ	projectorÚ
num_labelsÚ
classifierr®  )r2   r3   Ú
num_layersr5   s   && €r6   r&   Ú%SEWForSequenceClassification.__init__Ž  sÉ   ø€ Ü‰Ñ˜Ô ä�6˜=×)Ò)¨f×.@×.@Ð.@ÜØlóð ô ˜FÓ#ˆŒØ×-Ñ-°Õ1ˆ
Ø×(×(Ð(Ü!#§¢¬e¯jªj¸Ó.DÀzÕ.QÓ!RˆDÔÜŸš 6×#5Ñ#5°v×7RÑ7RÓSˆŒÜŸ)š) F×$?Ñ$?À×ARÑARÓSˆŒð 	�‰Ör8   c                óN   € V P                   P                  P                  4        R# rÝ  rÞ  rß  s   &r6   rà  Ú3SEWForSequenceClassification.freeze_feature_encoderŸ  râ  r8   c                óV   € V P                   P                  4        F
  pRVn        K  	  R# rä  rå  r«   s   & r6   ræ  Ú.SEWForSequenceClassification.freeze_base_model¦  rè  r8   c                ó¾   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[S[,          RS[S[,          /# rê  )rÀ   rÁ   r   r   rå   r   )rÃ   rI   s   "€r6   rÄ   Ú)SEWForSequenceClassification.__annotate__±  sd   ø€ ÷ 9
ñ 9
á—l‘l TÕ)ð9
ñ Ÿ™ tÕ+ð9
ñ —‘˜tÕ#ð	9
ñ
 Ñ+Õ,ð9
ñ 
Ñ)Õ	)ñ9
r8   c                ó(  € V P                   P                  '       d   RVR&   V P                  ! V3RV/VB pV P                   P                  '       dz   VP                  p\        P
                  ! V^R7      p\        P                  P                  V P                  RR7      pWgP                  R^^4      ,          P                  ^R7      pMVP                  pV P                  V4      pVf   VP                  ^R7      pM”V P                  VP                   ^,          V4      p	V	P#                  R4      P%                  ^^VP                   ^,          4      p
RWj( &   VP                  ^R7      V	P                  ^R7      P                  R^4      ,          pV P'                  V4      pRpVeG   \)        4       pV! VP                  RV P                   P*                  4      VP                  R4      4      p\-        VVVP                  VP.                  R7      # )	a¯  
input_values (`torch.FloatTensor` of shape `(batch_size, sequence_length)`):
    Float values of input raw speech waveform. Values can be obtained by loading a `.flac` or `.wav` audio file
    into an array of type `list[float]`, a `numpy.ndarray` or a `torch.Tensor`, *e.g.* via the torchcodec library
    (`pip install torchcodec`) or the soundfile library (`pip install soundfile`).
    To prepare the array into `input_values`, the [`AutoProcessor`] should be used for padding and conversion
    into a tensor of type `torch.FloatTensor`. See [`SEWProcessor.__call__`] for details.
labels (`torch.LongTensor` of shape `(batch_size,)`, *optional*):
    Labels for computing the sequence classification/regression loss. Indices should be in `[0, ...,
    config.num_labels - 1]`. If `config.num_labels == 1` a regression loss is computed (Mean-Square loss), If
    `config.num_labels > 1` a classification loss is computed (Cross-Entropy).
TÚoutput_hidden_statesr»   rÆ   Nrç   rñ  rT   )r3   r  r>  r<   rÀ   Ústackr   rÊ   rË   r	  ré   rc  r)  r  rE  rh  rè   r*  r+  r  r   r  r   r@  )r2   r²   r»   rë  r¾   rÿ  r<   Únorm_weightsÚpooled_outputÚpadding_maskÚexpand_padding_maskró  rò  Úloss_fcts   &&&&,         r6   r=   Ú$SEWForSequenceClassification.forward®  sá  € ð, �;‰;×-×-Ð-Ø-1ˆFÐ)Ñ*à—(’(Øñ
à)ð
ð ñ
ˆð �;‰;×-×-Ð-Ø#×1Ñ1ˆMÜ!ŸKšK¨¸1Ô=ˆMÜŸ=™=×0Ñ0°×1CÑ1CÈÐ0ÓLˆLØ*×->Ñ->¸rÀ1ÀaÓ-HÕH×MÑMÐRSÐMÓT‰Mà#×5Ñ5ˆMàŸ™ }Ó5ˆØÒ!Ø)×.Ñ.°1Ð.Ó5‰Mà×BÑBÀ=×CVÑCVÐWXÕCYÐ[iÓjˆLØ".×"8Ñ"8¸Ó"<×"CÑ"CÀAÀqÈ-×J]ÑJ]Ð^_ÕJ`Ó"aÐØ25ˆMÐ.Ñ/Ø)×-Ñ-°!Ð-Ó4°|×7GÑ7GÈAÐ7GÓ7N×7SÑ7SÐTVÐXYÓ7ZÕZˆMà—‘ Ó/ˆàˆØÒÜ'Ó)ˆHÙ˜FŸK™K¨¨D¯K©K×,BÑ,BÓCÀVÇ[Á[ÐQSÃ_ÓUˆDä'ØØØ!×/Ñ/Ø×)Ñ)ô	
ð 	
r8   )r  r	  r  r>  rÅ  )rA   rB   rC   rD   r&   rà  ræ  r   r   r   r=   rE   rF   rG   rH   s   @@r6   r  r  ‡  sB   ù‡ € õò"8ò(ð Ø Ø÷9
ñ 9
ó ó !ó ÷9
ð 9
r8   r  )Nrç   )Nr   )rÈ  r  r   r=  )FrJ  Úcollections.abcr   Únumpyr{  rÀ   r   Útorch.nnr   Ú r   rH  Úactivationsr   Úbackbone_utilsr   Úintegrations.deepspeedr	   Úintegrations.fsdpr
   Úmasking_utilsr   Úmodeling_flash_attention_utilsr   Úmodeling_layersr   Úmodeling_outputsr   r   r   Úmodeling_utilsr   r   r   Úprocessing_utilsr   rr   r   r   r   Úutils.genericr   r   Úutils.output_capturingr   r   Úconfiguration_sewr   Ú
get_loggerrA   r×  r   rK   rY   r¿   rc   r|   r‰   rš   rÏ   rÑ   r÷   r	  r  r=  rž  r   rÈ  r  Ú__all__rl  r8   r6   Ú<module>r2     sº  ðó* Ý $ã Û Ý Ý %å &Ý !Ý 9Ý @Ý 7Ý 6Ý BÝ 9ß YÑ Yß rÑ rÝ &ß @Ñ @ß Iß EÝ (ð 
×	Ò	˜HÓ	%€ôÐ8ô ô*Ð6ô ô6Ð6ô ô0( §¡ô (ôV�b—i‘iô ô�B—I‘Iô ô,#˜Ÿ	™	ô #÷L%ô8R)�2—9‘9ô R)ôj�R—Y‘Yô ô0Ð0ô ôDC@�—‘ô C@ðL ô;H˜ó ;Hó ð;H÷|tðn ôh@Ð!ó h@ó ðh@ñV ðôô
A
Ð"ó A
óð
A
ñH ðôô]
Ð#5ó ]
óð]
ò@ Z‚r8   