o
    
jO	                     @   sD   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 deZ	dS )    N   )TENSOR_NAME_QUANT_SUFFIXQuantizedValueQuantizedValueTypeattribute_to_kwarg	ms_domain   )QuantOperatorBasec                       s(   e Zd Z fddZ fddZ  ZS )QGlobalAveragePoolc                    s   t  || d S )N)super__init__)selfonnx_quantizer	onnx_node	__class__ ^/home/kuhnn/.local/lib/python3.10/site-packages/onnxruntime/quantization/operators/gavgpool.pyr      s   zQGlobalAveragePool.__init__c                    sL  | j }|jdks
J |jd | jjvrt  S | jj|jd  }| jj|jd  }| j|jd \}}}}}|r<|n|j	}|rC|n|j
}t|jd |jd t ||tj}	|	| jj|jd < i }
|jD ]	}|
t| qet|
d< d|
d< |jr|jd nd}tjjd|j |j|j	|j
||g|	jg|fi |
}| j j|g7  _d S )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   r   r   r      sV   

zQGlobalAveragePool.quantize)__name__
__module____qualname__r   r   __classcell__r   r   r   r   r
      s    r
   )
r(   quant_utilsr   r   r   r   r   base_operatorr	   r
   r   r   r   r   <module>   s    