
    g                     J    d dl Z ddlmZmZmZmZmZ ddlmZ  G d de      Z	y)    N   )TENSOR_NAME_QUANT_SUFFIXQuantizedValueQuantizedValueTypeattribute_to_kwarg	ms_domain   )QuantOperatorBasec                   (     e Zd Z fdZ fdZ xZS )QLinearPoolc                 &    t         |   ||       y )N)super__init__)selfonnx_quantizer	onnx_node	__class__s      _/var/www/openai/venv/lib/python3.12/site-packages/onnxruntime/quantization/operators/pooling.pyr   zQLinearPool.__init__   s    3    c                 2   | j                   }| j                  j                  |j                  d         \  }}}}}| j                  j	                  |dg      \  }}}}	|r|t
        |          S |j                  d   t        z   }
t        |j                  d   |
||t        j                        }|| j                  j                  |j                  d   <   i }|j                  D ]  }|j                  t        |              t        |d<   |j                   r|j                   dz   nd}t#        j$                  j&                  d|j(                  z   |d   |d   |d   ||g|
g|fi |}|	j+                  |       | j                  xj,                  |	z  c_        y )Nr   domain_quant QLinear)node	quantizer_get_quantization_paramsoutputquantize_activationr   quantizer   r   r   Inputquantized_value_map	attributeupdater   r   nameonnxhelper	make_nodeop_typeappend	new_nodes)r   r   
data_foundoutput_scale_nameoutput_zp_name_quantized_input_namesinput_zero_point_namesinput_scale_namesnodesqlinear_output_namequantized_output_valuekwargsr#   qlinear_node_nameqnoder   s                   r   r    zQLinearPool.quantize   s   yy NN33DKKNC	
 NN..taS9	
!" 2:7#%% #kk!n/GG!/KKN$$"
 >T**4;;q>: IMM,Y78 ($x48IIDII02%%$%a(!!$&q)! !!
 
 	U  E) r   )__name__
__module____qualname__r   r    __classcell__)r   s   @r   r   r      s    48* 8*r   r   )
r&   quant_utilsr   r   r   r   r   base_operatorr
   r    r   r   <module>r@      s     u u ,<*# <*r   