
    ڧg
                         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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dS )    )AnyListOptionalUnionN)nnmodulereturnc                 @   i }|                                  D ]b\  }}t          |           t          |          t          j        u st          |          t          j        u rt          j        d          ||<   c|                                D ]\  }}|| j        |<   d S )NFinplace)named_children_replace_relutyper   ReLUReLU6items_modules)r   reassignnamemodkeyvalues         a/var/www/html/ai-engine/env/lib/python3.11/site-packages/torchvision/models/quantization/utils.pyr   r      s    H**,, 4 4	cc 99499#8#8WU333HTNnn&& % %
U$% %    modelbackendc                    t          j        dddd          }|t           j        j        j        vrt          d          |t           j        j        _        |                                  |dk    rTt           j        j	        
                    t           j        j	        j        t           j        j	        j                  | _        nY|dk    rSt           j        j	        
                    t           j        j	        j        t           j        j	        j                  | _        |                                  t           j        j	                            | d	            | |           t           j        j	                            | d	           d S )
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_modelr7      sB   
1ac22en.@@@=>>>&-EN#	JJLLL(-55x,=8(L 6 
 
 
I		-55x,=ehF[Fs 6 
 

 
	H!!%!666	E
	H!!%!6666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   r8   r9   r:   methods        r   _fuse_modulesr@   -   sI     ~7=eUX"3358CXCeF6%33F333r   )typingr   r   r   r   r$   r   Moduler   strr7   boolr@    r   r   <module>rF      s    - - - - - - - - - - - -       %") % % % % %7") 7c 7d 7 7 7 70494',T#YT#Y-G'H4RZ[_R`4lo4 4 4 4 4 4r   