
    sg                     T    d dl Z	 d dlmZ d Z G d d      Zd Zy# e$ r dZY w xY w)    N)_cudnnc                 ^   | dk(  r#t        t        j                  j                        S | dk(  r#t        t        j                  j                        S | dk(  r#t        t        j                  j
                        S | dk(  r#t        t        j                  j                        S t        d|        )NRNN_RELURNN_TANHLSTMGRUzUnknown mode: )intr   RNNModernn_relurnn_tanhlstmgru	Exception)modes    K/var/www/html/venv/lib/python3.12/site-packages/torch/backends/cudnn/rnn.pyget_cudnn_moder      s    z6>>**++		6>>**++	6>>&&''	6>>%%&&./00    c                   $    e Zd Zd Zd Zd Zd Zy)Unserializablec                     || _         y Ninner)selfr   s     r   __init__zUnserializable.__init__   s	    
r   c                     | j                   S r   r   r   s    r   getzUnserializable.get!   s    zzr   c                      y)Nz<unserializable> r   s    r   __getstate__zUnserializable.__getstate__$   s     "r   c                     d | _         y r   r   )r   states     r   __setstate__zUnserializable.__setstate__)   s	    
r   N)__name__
__module____qualname__r   r   r!   r$   r    r   r   r   r      s    "
r   r   c                 p   dt        t        j                  j                               z   }|r| nd}||vs||   j	                         [|dk(  rt        d       ||<   nGt        t        j                  |||t        j                  t        j                  d                  ||<   ||   j	                         }|S )Ndesc_r   cuda)self_tydevice)	strtorchr*   current_devicer   r   _cudnn_init_dropout_stateuint8r,   )dropouttraindropout_seeddropout_statedropout_desc_name	dropout_p
dropout_tss          r   init_dropout_stater9   -   s    #ejj&?&?&A"BB aI.'(,,.6>/=d/CM+,/=// !KK <</0M+, 01557Jr   )
torch.cudar.   torch._Cr   ImportErrorr   r   r9   r    r   r   <module>r=      s=    
1   M   Fs    ''