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.
    *   lazyN)	freeze_rng_statetorchmanual_seed
isinstanceTensordevicetype_lazy	mark_step)opargskwargsoutput r   h/var/www/html/construction_image-detection-poc/venv/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   utils_mode_utilsno_dispatch_C_DisableFuncTorchget_rng_statecudais_availableset_rng_state)	rng_statecuda_rng_stater   r   r   r      s(   

 

j
Jr   )
contextlibr   r   contextmanagerr   r   r   r   r   <module>   s
   