o
    ¡¿¯i  ã                   @   s(   d Z ddlZdd„ Zdd„ Zdd„ ZdS )	z=Initialization functions for RNN sequence-to-sequence models.é    Nc                 C   s²   |   ¡ D ]R}|j}| ¡ dkr| ¡  q| ¡ dkr-| d¡}dt |¡ }| d|¡ q| ¡ dv rU| d¡}| ¡ dd… D ]}||9 }q@dt |¡ }| d|¡ qt‚dS )z,Initialize parameters in the LeCun's manner.é   é   ç      ð?r   ©é   é   N)	Ú
parametersÚdataÚdimÚzero_ÚsizeÚmathÚsqrtÚnormal_ÚNotImplementedError)ÚmoduleÚpr	   ÚnÚstdvÚk© r   ú^/home/ubuntu/.local/lib/python3.10/site-packages/espnet/nets/pytorch_backend/initialization.pyÚlecun_normal_init_parameters   s    



îr   c                 C   s\   |   ¡ D ]'}|j}| ¡ dkr| dd¡ q| ¡ dkr#| dd¡ q| ¡ dv r*qt‚dS )z3Initialize parameters with an uniform distribution.r   gš™™™™™¹¿gš™™™™™¹?r   r   N)r   r	   r
   Úuniform_r   )r   r   r	   r   r   r   Úuniform_init_parameters"   s   ôr   c                 C   s4   |   d¡}|d |d }}| j||…  d¡ dS )z5Initialize a bias vector in the forget gate with one.r   r   r   r   N)r   r	   Úfill_)Úbiasr   ÚstartÚendr   r   r   Úset_forget_bias_to_one3   s   
r   )Ú__doc__r   r   r   r   r   r   r   r   Ú<module>   s
   