o
    )i
                     @   s   d dl mZmZmZmZ d dlZd dlmZ dejddfddZdejd	e	ddfd
dZ
dejdeee	 eee	  f dee defddZdS )    )AnyListOptionalUnionN)nnmodulereturnc                 C   sj   i }|   D ]\}}t| t|tju st|tju r$tjdd||< q| D ]	\}}|| j|< q)d S )NFZinplace)Znamed_children_replace_relutyper   ZReLUZReLU6itemsZ_modules)r   Zreassignnamemodkeyvalue r   t/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/torchvision/models/quantization/utils.pyr
      s   r
   modelbackendc                 C   s   t dddd}|t jjjvrtd|t jj_|   |dkr1t jj	j
t jj	jt jj	jd| _n|dkrEt jj	j
t jj	jt jj	jd| _|   t jj	j| dd	 | | t jj	j| dd	 d S )
N      i+  z Quantized backend not supported Zfbgemm)Z
activationweightZqnnpackTr	   )torchZrandbackendsZ	quantizedZsupported_enginesRuntimeErrorZengineevalaoquantizationZQConfigZdefault_observerZ#default_per_channel_weight_observerZqconfigZdefault_weight_observerZ
fuse_modelprepareconvert)r   r   Z_dummy_input_datar   r   r   quantize_model   s$   

r    modules_to_fuseis_qatkwargsc                 K   s8   |d u r| j }|rtjjjntjjj}|| |fi |S )N)Ztrainingr   r   r   Zfuse_modules_qatZfuse_modules)r   r!   r"   r#   methodr   r   r   _fuse_modules-   s   r%   )typingr   r   r   r   r   r   Moduler
   strr    boolr%   r   r   r   r   <module>   s    