o
    Zh                     @   sR   d dl Zzd dlmZ W n ey   dZY nw dd ZG dd dZdd ZdS )	    N)_cudnnc                 C   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 | dkr(t tjjS td|  )NZRNN_RELUZRNN_TANHZLSTMZGRUzUnknown mode: )intr   ZRNNModeZrnn_reluZrnn_tanhZlstmZgru	Exception)mode r   G/var/www/auris/lib/python3.10/site-packages/torch/backends/cudnn/rnn.pyget_cudnn_mode   s   r   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
Unserializablec                 C   s
   || _ d S Ninner)selfr   r   r   r   __init__      
zUnserializable.__init__c                 C   s   | j S r
   r   r   r   r   r   get!   s   zUnserializable.getc                 C   s   dS )Nz<unserializable>r   r   r   r   r   __getstate__$   s   zUnserializable.__getstate__c                 C   s
   d | _ d S r
   r   )r   stater   r   r   __setstate__)   r   zUnserializable.__setstate__N)__name__
__module____qualname__r   r   r   r   r   r   r   r   r	      s
    r	   c              	   C   s   dt tj  }|r| nd}||vs||  d u r8|dkr&td ||< nttj|||tjtdd||< ||  }|S )NZdesc_r   cuda)Zself_tydevice)	strtorchr   Zcurrent_devicer   r	   Z_cudnn_init_dropout_stateZuint8r   )ZdropouttrainZdropout_seedZdropout_stateZdropout_desc_nameZ	dropout_pZ
dropout_tsr   r   r   init_dropout_state-   s"   	r   )Z
torch.cudar   Ztorch._Cr   ImportErrorr   r	   r   r   r   r   r   <module>   s   