U
    ,-e                     @   s  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! dddgZ"eee!e df eedddZ#eeedddZ$eeedddZ%dee&ed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"   d/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/torch/ao/quantization/quantize_pt2e.py_prepare_pt2e_deprecated%   s    r$   )r   	quantizerr   c                 C   sX   | j }t| }t|  ||  ||  t|  t| |dd} | j | t| } | S )NFZis_qat)	metar   r	   annotatevalidater   r   updater
   r   r%   original_graph_metar!   r"   r"   r#   r   ;   s    

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    

F)r   use_reference_representationr   c                 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    N)F)(Ztorch.fxr   Zpt2e.preparer   Zpt2e._propagate_annotationr   Zpt2e.qat_utilsr   r   Z
pt2e.utilsr   r	   r
   Zpt2e.representationr   Z
fx.preparer    Zquantize_fxr   Ztorch.ao.quantizationr   Ztorch.ao.quantization.quantizerr   r   r   r   r   r   r   Z$torch.ao.quantization.backend_configr   typingr   r   __all__r$   r   r   boolr   r"   r"   r"   r#   <module>   sF   $	
 