o
    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 )zWrapper 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   Z/home/www/facesmatcher.com/frenv_anti/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 rt j	| t 	|  W d    n1 sw   Y  W d    w W d    w 1 sw   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
Jr   )
contextlibr   r   contextmanagerr   r   r   r   r   <module>   s
   