
    Z j%                        S r SSKrSSKrSSKJr  SSKJr  SSKJr  SSK	J
r
  SSKJr  SS	KJr  S
SKJrJrJrJrJrJrJrJrJrJrJr  SSKJr   " S S\
5      r " S S\5      r " S S\R>                  5      r  " S S\R>                  5      r! " S S\5      r" " S S\5      r# " S S\5      r$ " S S\5      r% " S S\\5      r&\r' " S  S!\&\5      r( " S" S#\&\5      r) " S$ S%\5      r* " S& S'\5      r+ " S( S)\5      r,/ S*Qr-g)+zPyTorch Data2VecText model.    N)nn   )initialization)ACT2FN)GradientCheckpointingLayer)Wav2Vec2BaseModelOutput)PreTrainedModel   )Wav2Vec2AdapterWav2Vec2EncoderWav2Vec2FeatureEncoderWav2Vec2FeatureProjection#Wav2Vec2ForAudioFrameClassificationWav2Vec2ForCTC!Wav2Vec2ForSequenceClassificationWav2Vec2ForXVectorWav2Vec2ModelWav2Vec2PreTrainedModelWav2Vec2SamePadLayer   )Data2VecAudioConfigc                   2   ^  \ rS rSrSU 4S jjrS rSrU =r$ )Data2VecAudioConvLayer*   c                   > [         TU ]  5         US:  a  UR                  US-
     OSU l        UR                  U   U l        [
        R                  " U R                  U R                  UR                  U   UR                  U   UR                  S9U l
        [
        R                  " U R                  SS9U l        [        UR                     U l        g )Nr   r   )kernel_sizestridebiasTelementwise_affine)super__init__conv_dimin_conv_dimout_conv_dimr   Conv1dconv_kernelconv_stride	conv_biasconv	LayerNorm
layer_normr   feat_extract_activation
activation)selfconfiglayer_id	__class__s      ڄ/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/transformers/models/data2vec/modular_data2vec_audio.pyr"   Data2VecAudioConvLayer.__init__+   s    <DqL6??8a<8a"OOH5II**84%%h/!!
	 ,,t'8'8TR !?!?@    c                     U R                  U5      nUR                  SS5      nU R                  U5      nUR                  SS5      nU R                  U5      nU$ )N)r*   	transposer,   r.   r/   hidden_statess     r3   forwardData2VecAudioConvLayer.forward:   sV    		-0%//B76%//B76r5   )r.   r*   r$   r,   r%   )r   __name__
__module____qualname____firstlineno__r"   r<   __static_attributes____classcell__r2   s   @r3   r   r   *   s    A r5   r   c                       \ rS rSrSrg)Data2VecAudioPadLayerE    Nr?   r@   rA   rB   rC   rI   r5   r3   rG   rG   E       r5   rG   c                   .   ^  \ rS rSrU 4S jrS rSrU =r$ ) Data2VecAudioPositionalConvLayerI   c                 r  > [         TU ]  5         [        R                  " UR                  UR                  UR
                  UR
                  S-  UR                  S9U l        [        UR
                  5      U l	        [        UR                     U l        [        R                  " UR                  SS9U l        g )Nr
   )r   paddinggroupsFr   )r!   r"   r   r&   hidden_sizeconv_pos_kernel_sizenum_conv_pos_embedding_groupsr*   rG   rP   r   r-   r.   r+   r,   )r/   r0   r2   s     r3   r"   )Data2VecAudioPositionalConvLayer.__init__J   s    II33//1477
	 -V-H-HI !?!?@,,v'9'9eTr5   c                     U R                  U5      nU R                  U5      nUR                  SS5      nU R                  U5      nUR                  SS5      nU R	                  U5      nU$ Nr   r
   )r*   rP   r9   r,   r.   r:   s     r3   r<   (Data2VecAudioPositionalConvLayer.forwardY   sd    		-0]3%//156%//156r5   )r.   r*   r,   rP   r>   rE   s   @r3   rM   rM   I   s    U r5   rM   c                   .   ^  \ rS rSrU 4S jrS rSrU =r$ )$Data2VecAudioPositionalConvEmbeddingd   c                    > [         TU ]  5         [        R                  " [	        UR
                  5       Vs/ s H  n[        U5      PM     sn5      U l        g s  snf )N)r!   r"   r   
ModuleListrangenum_conv_pos_embeddingsrM   layers)r/   r0   _r2   s      r3   r"   -Data2VecAudioPositionalConvEmbedding.__init__e   sF    mm?DVEcEc?de?d!-f5?de
es   Ac                     UR                  SS5      nU R                   H  nU" U5      nM     UR                  SS5      nU$ rW   )r9   r`   )r/   r;   layers      r3   r<   ,Data2VecAudioPositionalConvEmbedding.forwardk   sD    %//15[[E!-0M !%//15r5   )r`   r>   rE   s   @r3   rZ   rZ   d   s    
 r5   rZ   c                       \ rS rSrS rSrg)Data2VecAudioFeatureEncoders   c           
          [         R                  R                  U 5        [         R                  " [	        UR
                  5       Vs/ s H  n[        XS9PM     sn5      U l        SU l        SU l	        g s  snf )N)r1   FT)
r   Moduler"   r]   r^   num_feat_extract_layersr   conv_layersgradient_checkpointing_requires_grad)r/   r0   is      r3   r"   $Data2VecAudioFeatureEncoder.__init__t   sb    
		4 ==AFvGeGeAfgAfA#F7Afg
 ',#" hs   A5)rn   rl   rm   N)r?   r@   rA   rB   r"   rC   rI   r5   r3   rg   rg   s   s    #r5   rg   c                       \ rS rSrSrg)Data2VecAudioFeatureProjection}   rI   NrJ   rI   r5   r3   rr   rr   }   rK   r5   rr   c                       \ rS rSrSrg)Data2VecAudioEncoder   rI   NrJ   rI   r5   r3   ru   ru      rK   r5   ru   c                       \ rS rSrSrg)Data2VecAudioAdapter   rI   NrJ   rI   r5   r3   rx   rx      rK   r5   rx   c                   |    \ rS rSr% \\S'   SrSrSrSr	Sr
SrSr\R                  " 5       S 5       rS rS	 rS
 rSrg)Data2VecAudioPreTrainedModel   r0   data2vec_audioinput_valuesaudioTc                 *   [        U[        5      (       a  [        R                  " SUR                  R
                  -  5      n[        R                  " UR                  R                  U* US9  [        R                  " UR                  R                  U* US9  g[        U[        5      (       a,  [        R                  " UR                  R                  S5        g[        U[        R                  5      (       ac  [        R                  " UR                  SU R                   R"                  S9  UR                  b!  [        R$                  " UR                  5        gg[        U[        R&                  [        R(                  45      (       a\  UR                  b   [        R$                  " UR                  5        UR                  b!  [        R*                  " UR                  5        gg[        U[        R,                  5      (       a  [        R.                  " UR                  5        UR                  b_  [        R                  " UR0                  UR2                  UR4                  S   -  -  5      n[        R                  " UR                  U* US9  ggg)zInitialize the weightsr   )abr           )meanstdN)
isinstancerr   mathsqrt
projectionin_featuresinituniform_weightr   rM   	constant_r*   r   Linearnormal_r0   initializer_rangezeros_r+   	GroupNormones_r&   kaiming_normal_rQ   in_channelsr   )r/   moduleks      r3   _init_weights*Data2VecAudioPreTrainedModel._init_weights   s    f<==		!f//;;;<AMM&++22qbA>MM&++00QB!< @AANN6;;++Q/		**LLSdkk6S6ST{{&FKK( 'r|| <=={{&FKK(}}(

6==) )		**  /{{&IIfmmv/A/AFDVDVWXDY/YZ[fkkaR15 ' +r5   c                     [        S5      eNzNot needed for Data2VecAudioAttributeErrorr/   s    r3   _get_adapters*Data2VecAudioPreTrainedModel._get_adapters       ;<<r5   c                     [        S5      er   r   r   s    r3   init_adapter_layers0Data2VecAudioPreTrainedModel.init_adapter_layers   r   r5   c                     [        S5      er   r   r   s    r3   load_adapter)Data2VecAudioPreTrainedModel.load_adapter   r   r5   rI   N)r?   r@   rA   rB   r   __annotations__base_model_prefixmain_input_nameinput_modalitiessupports_gradient_checkpointing_supports_flash_attn_supports_sdpa_supports_flex_attntorchno_gradr   r   r   r   rC   rI   r5   r3   r{   r{      sW    ($O&*#N
]]_6 62===r5   r{   c                   <   ^  \ rS rSrS\4S jrS rU 4S jrSrU =r	$ )Data2VecAudioModel   r0   c                    [         R                  X5        Xl        [        U5      U l        [        U5      U l        UR                  S:  d  UR                  S:  aG  [        R                  " [        R                  " UR                  5      R                  5       5      U l        [!        U5      U l        UR$                  (       a  ['        U5      OS U l        U R+                  5         g )Nr   )r{   r"   r0   rg   feature_extractorrr   feature_projectionmask_time_probmask_feature_probr   	Parameterr   TensorrR   r   masked_spec_embedru   encoderadd_adapterrx   adapter	post_init)r/   r0   s     r3   r"   Data2VecAudioModel.__init__   s    $--d;!<V!D"@"H   3&&*B*BS*H%'\\%,,v?Q?Q2R2[2[2]%^D"+F37=7I7I+F3t 	r5   c                 8    U R                   R                  5         g)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   _freeze_parametersr   s    r3   freeze_feature_encoder)Data2VecAudioModel.freeze_feature_encoder   s    
 	113r5   c                 $   > [         TU ]  " S0 UD6$ NrI   r!   r<   r/   super_kwargsr2   s     r3   r<   Data2VecAudioModel.forward       w...r5   )r   r0   r   r   r   r   )
r?   r@   rA   rB   r   r"   r   r<   rC   rD   rE   s   @r3   r   r      s    2 "4/ /r5   r   c                   :   ^  \ rS rSrS rS rS rU 4S jrSrU =r	$ )Data2VecAudioForCTC   c                    [         R                  X5        [        U5      U l        [        R
                  " UR                  5      U l        UR                  c  [        SU R                   S35      e[        US5      (       a  UR                  (       a  UR                  OUR                  n[        R                  " X!R                  5      U l        U R#                  5         g)a2  
config ([`Data2VecAudioForCTC`]):
    Model configuration class with all the parameters of the model. Initializing with a config file does not
    load the weights associated with the model, only the configuration. Check out the
    [`~PreTrainedModel.from_pretrained`]  method to load the model weights.
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: `Data2VecAudioForCTC.from_pretrained(..., vocab_size=vocab_size)`. or define `vocab_size` of your model's configuration.r   )r{   r"   r   r}   r   Dropoutfinal_dropoutdropout
vocab_size
ValueErrorr2   hasattrr   output_hidden_sizerR   r   lm_headr   )r/   r0   r   s      r3   r"   Data2VecAudioForCTC.__init__   s     	%--d;08zz&"6"67$00@ AH H  *1)G)GFL^L^F%%djdvdv 	 yy!35F5FG 	r5   c                     [        S5      er   r   r   s    r3   freeze_base_model%Data2VecAudioForCTC.freeze_base_model   r   r5   c                     [        S5      er   r   r   s    r3   tie_weightsData2VecAudioForCTC.tie_weights   r   r5   c                 $   > [         TU ]  " S0 UD6$ r   r   r   s     r3   r<   Data2VecAudioForCTC.forward   r   r5   )r}   r   r   )
r?   r@   rA   rB   r"   r   r   r<   rC   rD   rE   s   @r3   r   r      s    6==/ /r5   r   c                       \ rS rSrSrg)&Data2VecAudioForSequenceClassification   rI   NrJ   rI   r5   r3   r   r      rK   r5   r   c                       \ rS rSrSrg)(Data2VecAudioForAudioFrameClassificationi  rI   NrJ   rI   r5   r3   r   r     rK   r5   r   c                       \ rS rSrSrg)Data2VecAudioForXVectori  rI   NrJ   rI   r5   r3   r   r     rK   r5   r   )r   r   r   r   r   r{   ).__doc__r   r   r    r   r   activationsr   modeling_layersr   modeling_outputsr   modeling_utilsr	   wav2vec2.modeling_wav2vec2r   r   r   r   r   r   r   r   r   r   r   configuration_data2vec_audior   r   rG   rj   rM   rZ   rg   rr   ru   rx   r{   Data2VecAudioBaseModelOutputr   r   r   r   r   __all__rI   r5   r3   <module>r      s   "    & ! 9 7 -    >7 6	0 	ryy 6299 #"8 #	%> 		? 		? 	+=?4K +=\  7 /5} /:#/6 #/L	-N 		/R 		0 	r5   