o
    h                  
   @   s0  d dl mZ ddlmZ ddlmZ ddlmZmZ ddl	m
Z
mZmZ ddlmZ ddlmZ ddlmZ d d	lmZ d d
lmZmZmZmZmZmZmZ d dlmZ d dlm Z m!Z! g dZ"dedede!e df dedef
ddZ#dededefddZ$dededefddZ%	d dede&defddZ'dS )!    )GraphModule   )prepare)propagate_annotation)_fuse_conv_bn_qat_fold_conv_bn_qat)_get_node_name_to_scope_fuse_conv_bn__disallow_eval_train) reference_representation_rewrite)#_convert_to_reference_decomposed_fx)QConfigMapping)	QuantizerQuantizationSpecBaseQuantizationSpecFixedQParamsQuantizationSpecSharedQuantizationSpecDerivedQuantizationSpecQuantizationAnnotation)BackendConfig)AnyTuple)prepare_pt2eprepare_qat_pt2econvert_pt2emodelqconfig_mappingexample_inputs.backend_configreturnc                 C   s(   t | }t|  t| |d|||d} | S )NF)r   )r   r	   
fx_prepare)r   r   r   r   node_name_to_scope r"   Y/var/www/html/ai/venv/lib/python3.10/site-packages/torch/ao/quantization/quantize_pt2e.py_prepare_pt2e_deprecated%   s   r$   	quantizerc                 C   sX   | j }t| }t|  ||  ||  t|  t| |dd} | j | t| } | S )NFis_qat)	metar   r	   annotatevalidater   r   updater
   r   r%   original_graph_metar!   r"   r"   r#   r   ;   s   

r   c                 C   sX   | j }t| }||  ||  t|  t|  t| |dd} | j | t| } | S )NTr&   )	r(   r   r)   r*   r   r   r   r+   r
   r,   r"   r"   r#   r   M   s   

r   Fuse_reference_representationc                 C   s:   | j }t| } t| } |rt| } | j | t| } | S )N)r(   r   r   r   r+   r
   )r   r.   r-   r"   r"   r#   r   _   s   r   N)F)(torch.fxr   pt2e.preparer   pt2e._propagate_annotationr   pt2e.qat_utilsr   r   
pt2e.utilsr   r	   r
   pt2e.representationr   
fx.preparer    quantize_fxr   torch.ao.quantizationr   torch.ao.quantization.quantizerr   r   r   r   r   r   r   $torch.ao.quantization.backend_configr   typingr   r   __all__r$   r   r   boolr   r"   r"   r"   r#   <module>   s\    $	



