U
    ©Ê¹jé  ã                   @   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"   úb/var/www/html/bwave/python/venv/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   $	ý
ûýý þý