§
    kŠtjP
  ã                   óZ   — 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
dS )é    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        d         ||¦  «        \  }}}}}| j         	                    |dg¦  «        \  }}	}
}|r|€ t          ¦   «                              ¦   «         S |j        d         t          z   }t          |j        d         |||t          j        ¦  «        }|| j        j        |j        d         <   i }|j        D ]$}|                     t'          |¦  «        ¦  «         Œ%t(          |d<   | j        j        |d<   |j        r
|j        dz   nd}t          j        j        d|j        z   |d         |
d         |	d         ||g|g|fi |¤Ž}|                     |¦  «         | j        xj        |z  c_        d S )	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                     €úh/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/onnxruntime/quantization/operators/softmax.pyr   zQLinearSoftmax.quantize	   s   ø€ ØŒyˆàŒ>Ô*­d¬lÔ.FÔ.LÒLÐLØ!ˆIØˆNˆNà!ˆIØ!ˆNð ŒN×3Ò3°D´KÀ´NÀIÈ~Ñ^Ô^ñ	
ØØØØØð ŒN×.Ò.¨t°a°SÑ9Ô9ñ	
Ø!Ø"ØØð ð 	&Ð2Ð:Ý‘7”7×#Ò#Ñ%Ô%Ð%ð #œk¨!œnÕ/GÑGÐÝ!/ØŒK˜ŒNØØØÝÔ$ñ"
ô "
Ðð >TˆŒÔ*¨4¬;°q¬>Ñ:ð ˆØœð 	9ð 	9ˆIØ�MŠMÕ,¨YÑ7Ô7Ñ8Ô8Ð8Ð8Ý$ˆˆxÑàœ.Ô6ˆˆw‰Ø48´IÐE˜DœI¨Ñ0Ð0À2ÐÝ”Ô%Ø˜œÑ$à% aÔ(Ø! !Ô$Ø& qÔ)Ø!Øðð !Ð!Øð
ð 
ð ð
ð 
ˆð 	�Š�UÑÔÐØŒÐ Ô  EÑ)Ð Ô Øˆtó    )Ú__name__Ú
__module__Ú__qualname__r   Ú__classcell__)r:   s   @r;   r   r      sA   ø€ € € € € ðAð Að Að Að Að Að Að Að Ar<   r   )r   Úonnx.helperÚquant_utilsr   r   r   r   r   Úbase_operatorr
   r   © r<   r;   ú<module>rE      s•   ðØ €€€Ø Ð Ð Ð à uÐ uÐ uÐ uÐ uÐ uÐ uÐ uÐ uÐ uÐ uÐ uÐ uÐ uØ ,Ð ,Ð ,Ð ,Ð ,Ð ,ðBð Bð Bð Bð BÐ&ñ Bô Bð Bð Bð Br<   