
    gO	                     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 )QGlobalAveragePoolc                 &    t         |   ||       y )N)super__init__)selfonnx_quantizer	onnx_node	__class__s      `/var/www/openai/venv/lib/python3.12/site-packages/onnxruntime/quantization/operators/gavgpool.pyr   zQGlobalAveragePool.__init__   s    3    c                 N   | j                   }|j                  dk(  sJ |j                  d   | j                  j                  vrt
        |          S | j                  j                  |j                  d      }| j                  j                  |j                  d      }| j                  j                  |j                  d         \  }}}}}|r|n|j                  }|r|n|j                  }t        |j                  d   |j                  d   t        z   ||t        j                        }	|	| j                  j                  |j                  d   <   i }
|j                  D ]  }|
j!                  t#        |              t$        |
d<   d|
d<   |j&                  r|j&                  dz   nd}t)        j*                  j,                  d|j                  z   |j.                  |j                  |j                  ||g|	j.                  g|fi |
}| j                  xj0                  |gz  c_        y )NGlobalAveragePoolr   domainchannels_last_quant QLinear)nodeop_typeinput	quantizerquantized_value_mapr   quantize_get_quantization_paramsoutput
scale_namezp_namer   r   r   Input	attributeupdater   r   nameonnxhelper	make_nodeq_name	new_nodes)r   r   quantized_input_value
data_found output_scale_name_from_parameteroutput_zp_name_from_parameter_output_scale_nameoutput_zp_namequantized_output_valuekwargsr(   
qnode_nameqnoder   s                 r   r"   zQGlobalAveragePool.quantize   s   yy||2222 ::a= B BB7#%% $ B B4::a= Q !% B B4::a= Q NN33DKKNC	
,) AK<PePpPp:D6J_JgJg!/KKNKKN55$$"
 >T**4;;q>:IMM,Y78 ($x"#-1YYTYY)B
%%$%,,%00%--! $**+
 
 	  UG+ r   )__name__
__module____qualname__r   r"   __classcell__)r   s   @r   r   r      s    43, 3,r   r   )
r+   quant_utilsr   r   r   r   r   base_operatorr
   r    r   r   <module>rB      s     u u ,7,* 7,r   