o
    TÃi  ã                   @   s–   d dl Z d dlmZ G dd„ de jƒZG dd„ de jƒZG dd„ de jƒZG d	d
„ d
ejƒZG dd„ dejƒZ	G dd„ dejƒZ
G dd„ dejƒZdS )é    N)Ú
model_specc                   @   s,   e Zd ZdZdZdZdZdZdZdZ	dZ
d	S )
Ú
ActivationúActivation type.r   é   é   é   é   é   é   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚRELUÚGELUTanhÚSWISHÚGELUÚGELUSigmoidÚTanhÚSigmoid© r   r   úQ/home/ubuntu/.local/lib/python3.10/site-packages/ctranslate2/specs/common_spec.pyr      s    r   c                   @   s   e Zd ZdZdZdZdS )ÚEmbeddingsMergez&Merge strategy for factors embeddings.r   r   N)r   r   r   r   ÚCONCATÚADDr   r   r   r   r      s    r   c                   @   s   e Zd ZdZdZdZdZdS )ÚQuantizationr   r   r   r   N)r   r   r   r   ÚCT2ÚAWQ_GEMMÚAWQ_GEMVr   r   r   r   r      s
    r   c                   @   s   e Zd Zddd„ZdS )ÚLayerNormSpecFc                 C   s    d | _ |s
d | _d S tj| _d S ©N)ÚgammaÚbetar   ÚOPTIONALÚlayer_norm_use_residual)ÚselfÚrms_normr   r   r   Ú__init__$   s   
zLayerNormSpec.__init__N)F©r   r   r   r'   r   r   r   r   r   #   s    r   c                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú
LinearSpecc                 C   s"   d | _ tj| _tj| _tj| _d S r    )Úweightr   r#   Úweight_scaleÚweight_zeroÚbias©r%   r   r   r   r'   -   s   zLinearSpec.__init__c                 C   s   t | jtƒ S r    )Ú
isinstancer-   Ústrr.   r   r   r   Úhas_bias3   s   zLinearSpec.has_biasN)r   r   r   r'   r1   r   r   r   r   r)   ,   s    r)   c                   @   ó   e Zd Zdd„ ZdS )Ú
Conv1DSpecc                 C   ó   d | _ tj| _tj| _d S r    )r*   r   r#   r+   r-   r.   r   r   r   r'   8   ó   zConv1DSpec.__init__Nr(   r   r   r   r   r3   7   ó    r3   c                   @   r2   )ÚEmbeddingsSpecc                 C   r4   r    )r*   r   r#   r+   Úmultiply_by_sqrt_depthr.   r   r   r   r'   ?   r5   zEmbeddingsSpec.__init__Nr(   r   r   r   r   r7   >   r6   r7   )ÚenumÚctranslate2.specsr   ÚIntEnumr   r   r   Ú	LayerSpecr   r)   r3   r7   r   r   r   r   Ú<module>   s    	