
    h                         d dl mZmZmZ d dlZd dlmZ dej                  ddfdZdej                  deddfd	Z	dej                  d
ee
e   e
e
e      f   dee   defdZy)    )AnyOptionalUnionN)nnmodulereturnc                 <   i }| j                         D ]`  \  }}t        |       t        |      t        j                  u st        |      t        j
                  u sHt        j                  d      ||<   b |j                         D ]  \  }}|| j                  |<    y )NFinplace)named_children_replace_relutyper   ReLUReLU6items_modules)r   reassignnamemodkeyvalues         c/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/torchvision/models/quantization/utils.pyr   r      s    H**, 4	cc 949#8WWU3HTN4 nn& %
U$%    modelbackendc                    t        j                  dddd      }|t         j                  j                  j                  vrt        d      |t         j                  j                  _        | j                          |dk(  rut         j                  j                  j                  t         j                  j                  j                  t         j                  j                  j                        | _        ny|dk(  rtt         j                  j                  j                  t         j                  j                  j                  t         j                  j                  j                        | _        | j                          t         j                  j                  j!                  | d	        | |       t         j                  j                  j#                  | d	       y )
N      i+  z Quantized backend not supported fbgemm)
activationweightqnnpackTr
   )torchrandbackends	quantizedsupported_enginesRuntimeErrorengineevalaoquantizationQConfigdefault_observer#default_per_channel_weight_observerqconfigdefault_weight_observer
fuse_modelprepareconvert)r   r   _dummy_input_datas      r   quantize_modelr6      sF   

1ac2enn..@@@=>>&-ENN#	JJL(--55xx,,==88((LL 6 
 
I	--55xx,,==ehhF[F[FsFs 6 

 
	HH!!%!6	
	HH!!%!6r   modules_to_fuseis_qatkwargsc                     || j                   }|r$t        j                  j                  j                  n#t        j                  j                  j
                  } || |fi |S )N)trainingr#   r+   r,   fuse_modules_qatfuse_modules)r   r7   r8   r9   methods        r   _fuse_modulesr?   -   sM     ~7=UXX""33588CXCXCeCeF%3F33r   )typingr   r   r   r#   r   Moduler   strr6   listboolr?    r   r   <module>rF      s    ' '  %")) % %7")) 7c 7d 704994',T#YT#Y-G'H4RZ[_R`4lo4r   