
    gI                     &    d dl mZ  G d de      Zy)   )QDQOperatorBasec                   $     e Zd Z fdZd Z xZS )QDQNormalizationc                 &    t         |   ||       y )N)super__init__)selfonnx_quantizer	onnx_node	__class__s      \/var/www/openai/venv/lib/python3.12/site-packages/onnxruntime/quantization/operators/norm.pyr   zQDQNormalization.__init__
   s    3    c                    | j                   }|j                  dv sJ | j                  j                  |j                  d          | j                  j                  |j                  d         }| j                  j                  |j                  d   d|j                        \  }}|r+| j                  j                  |j                  d   |       nS|r)| j                  j                  |j                  d          n(| j                  j                  |j                  d          t        |j                        dkD  r^|j                  d   rO| j                  j                  |j                  |j                  d   |j                  d   |j                  d          | j                  s-|j                  D ]  }| j                  j                  |        y y )N>   BatchNormalizationLayerNormalizationInstanceNormalization    r   )default_axisop_type)axis   )noder   	quantizerquantize_activation_tensorinputis_input_a_initializeris_tensor_per_channel"quantize_weight_tensor_per_channelquantize_weight_tensorlenquantize_bias_tensornamedisable_qdq_for_node_outputoutput)r	   r   scale_is_initializerscale_is_per_channelscale_channel_axisoutput_names         r   quantizezQDQNormalization.quantize   sp   yy||dddd 	11$**Q-@  $~~DDTZZPQ]S37>>3W3WJJqM4<< 4X 4
00  NN==djjmRd=e!NN11$**Q-@NN55djjmD tzz?Q4::a=NN//		4::a=$**UV-Y]YcYcdeYfg //#{{99+F  + 0r   )__name__
__module____qualname__r   r)   __classcell__)r   s   @r   r   r   	   s    4Gr   r   N)qdq_base_operatorr   r    r   r   <module>r0      s    /G Gr   