
    gP
                     R    d dl Z 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 xZS )QLinearSoftmaxc                    | j                   }| j                  j                  t        j                  j
                  j                  k(  rd}d}nd}d}| 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                  j*                  |d<   |j,                  r|j,                  dz   nd}t        j.                  j0                  d|j2                  z   |d   |
d   |	d   ||g|g|fi |}|j5                  |       | j                  xj6                  |z  c_        y )	Ng      p?r   idomainopset_quant QLinear)node	quantizeractivation_qTypeonnxonnx_pbTensorProtoUINT8_get_quantization_paramsoutputquantize_activationsuperquantizer   r   r   Inputquantized_value_map	attributeupdater   r   opset_versionnamehelper	make_nodeop_typeappend	new_nodes)selfr   	out_scaleout_zero_point
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qnode	__class__s                     _/var/www/openai/venv/lib/python3.12/site-packages/onnxruntime/quantization/operators/softmax.pyr   zQLinearSoftmax.quantize	   s   yy>>**dll.F.F.L.LL!IN!I!N NN33DKKNI~^	
 NN..taS9	
!" 2:7#%% #kk!n/GG!/KKN$$"
 >T**4;;q>: IMM,Y78 ($x..66w48IIDII02%%$%a(!!$&q)! !!
 
 	U  E)     )__name__
__module____qualname__r   __classcell__)r:   s   @r;   r   r      s    A Ar<   r   )r   onnx.helperquant_utilsr   r   r   r   r   base_operatorr
   r    r<   r;   <module>rE      s#      u u ,B& Br<   