o
    h                     @   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|  )NRNN_RELURNN_TANHLSTMGRUzUnknown mode: )intr   RNNModernn_relurnn_tanhlstmgru	Exception)mode r   l/var/www/html/construction_image-detection-poc/venv/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 )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_tsr   r   r   init_dropout_state-   s"   	r1   )
torch.cudar&   torch._Cr   ImportErrorr   r   r1   r   r   r   r   <module>   s   