
    n ih                        d dl Zd dlmZmZmZ  G d dej                  Z G d dej                  Z	 G d dej
                  Z G d	 d
ej
                  Z G d dej
                  Z G d dej
                  ZdS )    N)attention_speccommon_spec
model_specc                       e Zd ZdZd ZdS )Wav2Vec2BertConfigz)Configuration for the Wav2Vec2Bert model.c                     d S N selfs    c/var/www/html/auto_sub_bot/venv/lib/python3.11/site-packages/ctranslate2/specs/wav2vec2bert_spec.py__init__zWav2Vec2BertConfig.__init__	   s        N)__name__
__module____qualname____doc__r   r
   r   r   r   r      s)        33    r   r   c                   V     e Zd Z fdZed             Zed             Zd Zd Z xZ	S )Wav2Vec2BertSpecc                     t                                                       t          j        d                              |          | _        t          |||          | _        d S )Nint16)superr   npdtypetype
vocab_sizeWav2Vec2BertEncoderSpecencoder)r   num_hidden_layersnum_adapter_layersr   return_hidden	__class__s        r   r   zWav2Vec2BertSpec.__init__   sX     	(7++00<<.
 
r   c                     dS )Nr   r
   r   s    r   namezWav2Vec2BertSpec.name   s    !!r   c                     dS )N   r
   r   s    r   revisionzWav2Vec2BertSpec.revision!   s    qr   c                     t                      S r	   )r   r   s    r   get_default_configz#Wav2Vec2BertSpec.get_default_config%   s    !###r   c                 N    t          | j                                                  S r	   )intr   numpyr   s    r   get_vocabulary_sizez$Wav2Vec2BertSpec.get_vocabulary_size(   s    4?((**+++r   )
r   r   r   r   propertyr$   r'   r)   r-   __classcell__)r"   s   @r   r   r      s        
 
 
 
 
 " " X"   X$ $ $, , , , , , ,r   r   c                       e Zd ZddZdS )Wav2Vec2BertFeedForwardSpecFc                     t          j                    | _        t          j                    | _        |rt          j                    | _        d S d S r	   )r   
LinearSpeclinear_0linear_1linear_0_noact)r   glurms_norms      r   r   z$Wav2Vec2BertFeedForwardSpec.__init__-   sK    #.00#.00 	;"-"8":":D	; 	;r   N)FFr   r   r   r   r
   r   r   r1   r1   ,   s(        ; ; ; ; ; ;r   r1   c                       e Zd Zd ZdS )EncoderSpecc                 p   t          j                    | _        t                      | _        t          j                    | _        t          j        dd          | _        | j        `	t          j                    | _
        t          j                    | _        | j        `t          j                    | _        | j        `t          j                    | _        t          j                    | _        | j        `t          j                    | _        t                      | _        t          j                    | _        d S )NTself_attentionrelative_asymmetric_position)r   LayerNormSpecenc_ffn1_layer_normr1   enc_ffn1enc_attn_layer_normr   MultiHeadAttentionSpecenc_attn
layer_normenc_conv_layer_norm
Conv1DSpecenc_conv_pointwise_conv1biasenc_conv_depthwise_convenc_conv_depthwise_layer_normenc_conv_pointwise_conv2enc_ffn2_layer_normenc_ffn2enc_final_layer_normr   s    r   r   zEncoderSpec.__init__5   s    #.#<#>#> 355#.#<#>#> &=)-
 
 
 M$#.#<#>#> (3(>(@(@%).'2'='?'?$(--8-F-H-H*(3(>(@(@%).#.#<#>#> 355$/$=$?$?!!!r   Nr9   r
   r   r   r;   r;   4   s(        @ @ @ @ @r   r;   c                       e Zd Zd ZdS )AdapterSpecc                 `   t          j                    | _        t          j                    | _        t          j                    | _        t          j                    | _        t          j        dd          | _	        | j	        `
t          j                    | _        t                      | _        d S )NTFr=   )r   r@   adpt_residual_layer_normrH   adpt_residual_convadpt_attn_layer_normadpt_attn_convr   rD   adpt_attn_layerrF   adpt_ffn_layer_normr1   adpt_ffnr   s    r   r   zAdapterSpec.__init__L   s    (3(A(C(C%"-"8":":$/$=$?$?!)466-D). 
  
  
  +#.#<#>#> 355r   Nr9   r
   r   r   rR   rR   K   s#        6 6 6 6 6r   rR   c                       e Zd Zd ZdS )r   c                    t          j                    | _        t          j                    | _        d t          |          D             | _        d t          |          D             | _        |st          j                    | _        d S d S )Nc                 *    g | ]}t                      S r
   )r;   .0_s     r   
<listcomp>z4Wav2Vec2BertEncoderSpec.__init__.<locals>.<listcomp>^   s    OOO{}}OOOr   c                 *    g | ]}t                      S r
   )rR   r^   s     r   ra   z4Wav2Vec2BertEncoderSpec.__init__.<locals>.<listcomp>_   s    PPP{}}PPPr   )	r   r@   fp_layer_normr3   fp_projectionrangeencoder_layersadapter_layerslm_head)r   r   r    r!   s       r   r   z Wav2Vec2BertEncoderSpec.__init__[   s    (688(355OOe<M6N6NOOOPPe<N6O6OPPP 	4&133DLLL	4 	4r   Nr9   r
   r   r   r   r   Z   s#        4 4 4 4 4r   r   )r,   r   ctranslate2.specsr   r   r   ModelConfigr   LanguageModelSpecr   	LayerSpecr1   r;   rR   r   r
   r   r   <module>rm      sO       E E E E E E E E E E    /   , , , , ,z3 , , ,>; ; ; ; ;*"6 ; ; ;@ @ @ @ @*& @ @ @.6 6 6 6 6*& 6 6 64 4 4 4 4j2 4 4 4 4 4r   