o
    ;Î®c0  ã                   @   s>   d dl Z ddlmZmZmZmZ ddlmZ G dd„ dƒZdS )é    Né   )ÚQuantizedValueÚQuantizedValueTypeÚattribute_to_kwargÚquantize_nparrayé   )ÚQuantOperatorBasec                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚQDQOperatorBasec                 C   s,   || _ || _|j|jv rd| _d S d| _d S )NTF)Ú	quantizerÚnodeÚop_typeÚ'op_types_to_exclude_output_quantizationÚdisable_qdq_for_node_output)ÚselfÚonnx_quantizerÚ	onnx_node© r   ú[/tmp/pip-target-vg8gfxp4/lib/python/onnxruntime/quantization/operators/qdq_base_operator.pyÚ__init__   s   ÿÿzQDQOperatorBase.__init__c                 C   s>   | j }| jr
|j}nt |j|j¡}|D ]}| j |¡ qd S )N)r   r   ÚinputÚ	itertoolsÚchainÚoutputr
   Úquantize_activation_tensor)r   r   Útensors_to_quantizeÚtensor_namer   r   r   Úquantize   s   ÿzQDQOperatorBase.quantizeN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r	      s    r	   )	r   Úquant_utilsr   r   r   r   Úbase_operatorr   r	   r   r   r   r   Ú<module>   s    