o
    wZh÷  ć                   @   s*   d dl Z d dlZdd Ze jdd ZdS )é    Nc                 O   sh   t  ' t d” | |i |¤}t|tjr!|jjdkr!tj ”  |W  d   S 1 s-w   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   śC/var/www/auris/lib/python3.10/site-packages/torch/testing/_utils.pyŚwrapper_set_seed   s   

$÷r   c                  c   s   t jj ” + t j ”  t  ” } t j ” rt j ” }W d    n1 s&w   Y  W d    n1 s5w   Y  zJd V  W t jj ” 6 t j ”  t j ” rWt j 	|” t  	| ” W d    n1 sfw   Y  W d    d S W d    d S 1 s~w   Y  d S t jj ” 4 t j ”  t j ” rt j 	|” t  	| ” W d    n1 s¬w   Y  W d    w W d    w 1 sĀw   Y  w )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(   

ż 

jż
Jżr   )Ś
contextlibr   r   Ścontextmanagerr   r   r   r   r   Ś<module>   s
   