a
    ŪĄh÷  ć                   @   s*   d dl Z d dlZdd Ze jdd ZdS )é    Nc                 O   sh   t  N t d” | |i |¤}t|tjrB|jjdkrBtj ”  |W  d   S 1 sZ0    Y  dS )z”Wrapper to set seed manually for some functions like dropout
    See: https://github.com/pytorch/pytorch/pull/62315#issuecomment-896143189 for more details.
    é*   ZlazyN)	Śfreeze_rng_stateŚtorchZmanual_seedŚ
isinstanceZTensorZdeviceŚtypeZ_lazyZ	mark_step)ŚopŚargsŚkwargsŚoutput© r   śP/var/www/html/assistant/venv/lib/python3.9/site-packages/torch/testing/_utils.pyŚwrapper_set_seed   s    

r   c                  c   sv  t jj ” V t j ” , t  ” } t j ” r6t j ” }W d    n1 sJ0    Y  W d    n1 sh0    Y  zd V  W t jj ” Z t j ” 0 t j ” r¬t j 	|” t  	| ” W d    n1 sŹ0    Y  W d    n1 sč0    Y  n~t jj ” ^ t j ” 2 t j ” r&t j 	|” t  	| ” W d    n1 sF0    Y  W d    n1 sf0    Y  0 d S )N)
r   ŚutilsZ_mode_utilsZno_dispatchZ_CZ_DisableFuncTorchZget_rng_stateŚcudaZis_availableZset_rng_state)Z	rng_stateZcuda_rng_stater   r   r   r      s    
F

Hżr   )Ś
contextlibr   r   Ścontextmanagerr   r   r   r   r   Ś<module>   s   