+
    9i2d                         ^ RI t ^ RIHt ^ RIt^ RIt^ RIt ^ RIHt ^RI
Ht ^RIHt ^RIHtHtHtHtHtHtHtHtHtHtHtHtHt ^RIHt  ! R R	4      t ! R
 R4      tR#   ]	 d    Rt LQi ; i)    N)Any)to_array_extended)
TensorData)	ONNXModel)DEQUANT_OP_NAMEONNX_TYPE_TO_NP_TYPEQUANT_OP_NAMETENSOR_NAME_QUANT_SUFFIXfind_by_nameget_opset_versionmodel_has_infer_metadatanormalize_axispack_bytes_to_4bitquantize_dataquantize_nparray&save_and_reload_model_with_shape_infertensor_proto_to_array)TensorQuantOverridesHelperc                   T   a  ] tR t^'t o V 3R lR ltR
R ltR tR tR tR t	R	t
V tR# )QuantizationParamsc                6   < V ^8  d   QhRS[ S[S[3,          /# )   data)dictstrr   )format__classdict__s   "e/var/www/html/photoedit/myenv/lib/python3.14/site-packages/onnxruntime/quantization/base_quantizer.py__annotate__QuantizationParams.__annotate__(   s      tCH~     c                   / V n         VP                  4        EF$  w  r#\        V\        4      '       g   \	        R \        V4       RV: R24      hVR8w  dM   \        V\        \        \        P                  \        34      '       g   \	        R\        V4       RV: R24      hVR8X  d3   \        V\        4      '       g   Ve   \	        R\        V4       R24      hVR8X  dL   VP                  \        P                  \        P                  39  d   \        RVP                   RV: 24      hW0P                   V&   EK'  	  R# )	zKeys must be strings not z for k=.axisz1Values must be numpy arrays, int, float, str not Nz'Axis value must be an int or None, not scalez5scale must a float32 or float16 numpy element but is )r   items
isinstancer   	TypeErrortypeintnpndarrayfloatdtypefloat32float16
ValueError)selfr   kvs   &,  r   __init__QuantizationParams.__init__(   s   	JJLDAa%%";DG9GA5PQ RSSF{:a#sBJJ1N#O#O"STXYZT[S\\cdechhi jkkF{:a#5#5!-"I$q'RS TUUG|

BJJ/G G #XYZY`Y`Xaahijhm!nooIIaL !r!   Nc                8    V P                   P                  W4      # N)r   get)r2   keydefault_values   &&&r   r9   QuantizationParams.get5   s    yy}}S00r!   c              #  :   "   V P                    R j  xL
  R #  L5ir8   r   r2   s   &r   __iter__QuantizationParams.__iter__8   s     99s   c                (    V P                   V,          # r8   r>   )r2   r:   s   &&r   __getitem__QuantizationParams.__getitem__;   s    yy~r!   c                "    W P                   V&   R # r8   r>   )r2   r:   values   &&&r   __setitem__QuantizationParams.__setitem__>   s    		#r!   c                ,    \        V P                  4      # r8   )lenr   r?   s   &r   __len__QuantizationParams.__len__A   s    499~r!   r>   r8   )__name__
__module____qualname____firstlineno__r5   r9   r@   rC   rG   rK   __static_attributes____classdictcell__r   s   @r   r   r   '   s-      1 r!   r   c                   ~   a  ] tR t^Et o RR ltV 3R lR ltR tR tR tR t	R	 t
RR
 ltRR ltRR ltR tRtV tR# )BaseQuantizerNc           	     N   \        V4      '       g   \        V4      pVP                  P                   Uu/ uF  qP                  VbK  	  upV n        V P
                  P                  VP                  P                   Uu/ uF  qP                  VbK  	  up4       V P
                  P                  VP                  P                   Uu/ uF  qP                  VbK  	  up4       \        V4      V n
        \        V4      V n        W n        W0n        V
'       d   T
M/ V n        R V P                  9   ;'       d    V P                  R ,          V n        RV n        RV P                  9   ;'       d    V P                  R,          V n        V P                  P'                  RR4      V n        V P                  P'                  RR4      V n        V P                  P'                  R4      V n        \/        VRV4      V n        \/        VRV4      V n         Ve   \4        ;QJ d*    R VP7                  4        4       F  '       g   K   R	M	  RM! R VP7                  4        4       4      '       d7   \9        R
VP7                  4        Uu0 uF  p\;        V4      kK  	  up R24      hW`n        Wpn        Wn         Wn!        \E        V P                  P'                  R/ 4      4      V n#        V P                  PI                  4        Uu/ uF  qP                  VbK  	  upV n%        V PF                  PM                  V PJ                  V P
                  PO                  4       V4      w  ppV'       g   \Q        V4      hV PF                  PS                  4       V n*        R# u upi u upi u upi u upi u upi )EnableSubgraphNForceQuantizeNoInputCheckWeightSymmetricActivationSymmetricFMinimumRealRangetensor_typec              3   L   "   T F  p\        V\        4      '       * x  K  	  R # 5ir8   )r'   r   ).0ts   & r   	<genexpr>)BaseQuantizer.__init__.<locals>.<genexpr>{   s     ,kTjqAz1J-J-JTjs   "$Tz(tensors_range contains unexpected types z, not TensorData.TensorQuantOverrides)+r   r   graph
value_infonamevalue_infosupdateoutputinputr   modelr   opset_versionper_channelreduce_rangeextra_optionsenable_subgraph_quantizationparentforce_quantize_no_input_checkr9   _is_weight_symmetricis_activation_symmetricmin_real_rangegetattractivation_qTypeweight_qTypeanyvaluesr(   r)   tensors_rangenodes_to_quantizenodes_to_excludeop_types_to_quantizer   tensor_quant_overridesinitializerinitializersis_validkeysr1   get_quant_typestensor_quant_override_qtypes)r2   rj   rl   rm   rw   rv   rz   r{   r|   r}   rn   viotitr4   initzeroverrides_validoverrides_errs   &&&&&&&&&&&       r   r5   BaseQuantizer.__init__F   s    (..:5AE27++2H2HI2HBGGRK2HIu{{7I7I J7I"7I JKu{{7H7H I7H"7H IJu%
.u5&(.;] 2 22[[t7I7IJZ7[ 	) '4+=+==qq$BTBTUpBq 	* 261C1C1G1GHY[_1`!'+'9'9'='=>SUZ'[$"00445GH '(8-IY Z#L-N
	 $,kTaThThTj,k,kTaThThTj,k)k)k:mNbNbNd<eNdT!WNd<e:ggxy  +!2 0$8! 'AASASAWAWXnprAs&t#BF**BXBXBZ[BZw\\72BZ[)-)D)D)M)Mt//4468H*
& ]++,0,G,G,W,W,Y)s J J IL =f \s   N?NN?N
;N"c                N   < V ^8  d   QhRS[ P                  P                  RS[/# )r   weight_quant_typereturn)onnxTensorProtoDataTypebool)r   r   s   "r   r   BaseQuantizer.__annotate__   s(     
 
T5E5E5N5N 
SW 
r!   c                   V P                   e   V P                   # V\        P                  P                  \        P                  P                  \        P                  P
                  \        P                  P                  39   # r8   )rr   r   r   INT4INT8INT16FLOAT8E4M3FN)r2   r   s   &&r   is_weight_symmetric!BaseQuantizer.is_weight_symmetric   sh    $$0,,, !!!!""))	%
 
 	
r!   c                    \         hr8   )NotImplementedErrorr?   s   &r   quantize_modelBaseQuantizer.quantize_model   s    !!r!   c                P    \        WP                  P                  4       4      pVR J# r8   )r   rj   r   )r2   
input_namer   s   && r   is_input_a_initializer$BaseQuantizer.is_input_a_initializer   s$    ":zz/E/E/GH$&&r!   c                    V P                   # r8   )rl   r?   s   &r   is_per_channelBaseQuantizer.is_per_channel   s    r!   c                L   \        WP                  P                  4       4      pVeB   VP                  \        P
                  P                  \        P
                  P                  39   # V P                  '       d   V P                  f   R# V P                  P                  V4      # )NF)r   rj   r   	data_typer   r   FLOATFLOAT16ro   rp   is_valid_quantize_weight)r2   weight_nameweights   && r   r   &BaseQuantizer.is_valid_quantize_weight   sz    k::+A+A+CD##(8(8(>(>@P@P@X@X'YYY111t{{7J{{33K@@r!   c                Z   V P                   e8   \        V P                   4      ^ 8w  d   VP                  V P                   9  d   R# VP                  V P                  9  d   R# VP                  \
        \        39   d   R# V P                  e   VP                  V P                  9   d   R# R# )NFT)r{   rJ   re   op_typer}   r   r	   r|   )r2   nodes   &&r   should_quantize_node"BaseQuantizer.should_quantize_node   s    "".D**+q0		!7!77<<t888<<O];;  ,d>S>S1Sr!   c                   \        WP                  P                  4       4      p\        V4      pV\        ,           pV P
                  \        P                  P                  8X  Ed6   \        P                  ! V4      pVP                  \        P                  8X  d   \        P                  P                  p	MSVP                  \        P                  8X  d   \        P                  P                  p	M\!        RVP                   R24      hVP#                  \        P                  4      p
\        P$                  ! ^.V
P                  R7      pVP'                  R4      p\        P(                  P+                  W4      pV P                  P-                  V.4       RpEM8W#,          V,          p\        P                  ! V\        P.                  R7      \        P                  ! V\        P.                  R7      ,          p
V
P1                  4       p
\        P.                  ! \        P2                  ! \        P4                  4      P6                  4      p\        P.                  ! \        P2                  ! \        P4                  4      P8                  4      p\        P:                  ! W8  4      '       g    \        P:                  ! V
V8  4      '       d   \<        P>                  ! RV R24       \        P@                  ! WV4      P#                  \        P4                  4      p
\        P                  ! V
\        P4                  R7      P'                  VPB                  4      p\        P(                  P+                  VV4      pV P                  P-                  V.4       \        P                  ! WP                  R7      P'                  R4      pRpV P
                  p	VR,           p\        P(                  P+                  VV4      pV P                  P-                  V.4       V P
                  \        P                  P                  8X  d   V P
                  pM\        P                  PD                  pVR	,           pV P
                  \        P                  P                  8X  d0   \        PF                  PI                  VV P
                  ^.R
.4      pMVPJ                  ^8  da   \        PL                  ! VPN                  \        P4                  R7      P'                  R4      p\        P(                  P+                  VV4      pM#\        PF                  PI                  VV. ^ .4      pV P                  P-                  V.4       VVVVVV	3# )zM
Quantized the bias. Zero Point == 0 and Scale == Input_Scale * Weight_Scale
zEOnly float16 or float32 are supported with float 8 but bias dtype is r#   r.   CastzQuantized bias `z<` exceeds the range of a int32. The bias scale is too small.DequantizeLinear_scale_zero_point        )(r   rj   r   r   r
   rw   r   r   r   r+   asarrayr.   r0   r   r/   r   r(   astypearrayreshapenumpy_helper
from_arrayinitializer_extendfloat64roundiinfoint32minmaxrx   loggingwarningclipdimsINT32helpermake_tensorsizezerosshape)r2   	bias_nameinput_scaleweight_scalebetabias_initializer	bias_dataquantized_bias_namer   
node_qtypequantized_data
bias_scalebias_scale_datapacked_bias_initializer	node_type	int32_min	int32_maxbias_np_dataquantized_bias_scale_namepacked_bias_scale_initializerr\   quantized_bias_zp_namepacked_bias_zp_initializerbias_zp_datas   &&&&&                   r   quantize_bias_static_impl'BaseQuantizer.quantize_bias_static_impl   s    (	::3I3I3KL)*:;	'*BB  0 0 = ==::i(DzzRZZ'!--55
rzz)!--33
"ghlhrhrgsst uvv![[4N1#^-A-ABJ(004O&*&7&7&B&B>&g#JJ))+B*CDI %3d:J  ZZ	DrzzR\dfdndnGooN+113N 

288BHH#5#9#9:I

288BHH#5#9#9:Ivvn011RVVNY<V5W5W&yk1mn  WW^	JQQRTRZRZ[N ::nBHHEMMN^NcNcdL&*&7&7&B&B<Qd&e#JJ))+B*CD !jj??KSSTVWO*I**J %8($B!(,(9(9(D(D_Vo(p%

%%'D&EF  0 0 = ==++K**00K!4}!D 0 0 = ==)-)@)@AWY]YjYjmnloruqv)w&__q 88J$4$4BHHEMMbQL)-):):)E)ElTj)k&)-)@)@AWYdfhkljm)n&

%%'A&BC  %"
 	
r!   c                   VP                   \        ,           pVP                   R,           pVP                   R,           p\        V4      pV P                  P	                  VP                   / R7      p	RV	9   d   V	R,          P
                  pRV	9   Ed$   RV	9   Ed   \        P                  ! V	R,          \        V,          R7      p
\        P                  ! V	R,          4      p\        W(P                  4       W4      p\        V
\        P                  4      '       g   Q R\        V
4       24       hV
P                  \        P                  8w  d    V
P                  \        P                   8w  g   Q R	V
P                   24       h\        V\        P                  4      '       g   Q R\        V4       24       hEMdW P"                  8X  d   V P%                  V4      MV P&                  p\)        VP                  4       TV	P+                  R
V4      T	P+                  RV P,                  ;'       d    T4      V P.                  V	P+                  R4      V	P+                  R4      R7      w  rp\        V
\        P                  4      '       g   Q R\        V
4       24       hV
P                  \        P                  8w  d    V
P                  \        P                   8w  g   Q R	V
P                   24       h\        V\        P                  4      '       g   Q R\        V4       24       hVP0                  p\2        P4                  P7                  W~. VP9                  R4      P;                  4       4      p\2        P4                  P7                  Wb. V
P9                  R4      P;                  4       4      pV P<                  P?                  VV.4       V'       Eg   V P"                  \2        P@                  PB                  8X  Ed@   \2        P@                  ! 4       pV P"                  Vn        VPD                  PG                  VPD                  4       VVn         VP                  4       PI                  4       PK                  4       Vn&        \N        e   \O        V4      pVPP                  VPP                  8w  g$   VPK                  4       VPK                  4       8w  dj   \S        RVPP                   RVPK                  4       R,           RVPK                  4       R,           RVPP                   R\U        V4      R,           R24      hEM4V\2        P@                  PV                  \2        P@                  PX                  39   d   VP                  \        PZ                  \        P\                  39  d   \S        RV R24      h\_        \a        VPK                  4       4      4      p\2        P4                  P7                  WRVPD                  VRR7      pMm\        Pb                  ! V\2        P4                  Pe                  V4      R7      P9                  VPD                  4      p\2        Pf                  Pi                  W4      pV P<                  P?                  V.4       WVV3# )aj  
:param weight: TensorProto initializer
:param qType: type to quantize to
:param keep_float_weight: Whether to quantize the weight. In some cases, we only want to qunatize scale and zero point.
                          If keep_float_weight is False, quantize the weight, or don't quantize the weight.
:return: quantized weight name, zero point name, scale name
r   r   default_val
quant_typer%   
zero_pointr   Unexpected type Unexpected dtype 	symmetricrm   rminrmaxrm   rt   rmin_overridermax_overridezThe initializer of shape z! could not be created, expecting :N
   Nz, got z and shape=z
raw=:N   Nr#   Quantized weights for . must be 8-bit before packing as 4-bit values.Traw)r   )5re   r
   r   r~   get_per_tensor_overridesr\   r+   r   r   r   flattenr'   r,   r)   r.   r/   r0   rw   r   rs   r   r9   rm   rt   r   r   r   r   r   tolistrj   r   r   r   r   extendcopytobytesraw_datar   r   RuntimeErrorr   r   UINT4int8uint8bytesr   r   tensor_dtype_to_np_dtyper   r   )r2   r   qTyperm   keep_float_weightq_weight_namezp_name
scale_nameweight_dataquant_overridesr   r%   q_weight_datar   scale_dtypescale_initializerzero_initializerq_weight_initializercheckpacked_datas   &&&&&               r   quantize_initializer_impl'BaseQuantizer.quantize_initializer_impl  sF    &>>++-[[8+
 ,F355NNv{{hjNk?*#L1==Eo%,/*I/,"?G[\aGbcJHH_W56E,U4G4G4I5]Mj"**55\9I$zJZI[7\\5##rzz1j6F6F"**6T #J$4$4#56T eRZZ00R4DT%[M2RR0 <ADUDU;U007[_[w[wI/<##%##K;,00ARARAcAcWcd#22-11&9-11&90,J} j"**55\9I$zJZI[7\\5##rzz1j6F6F"**6T #J$4$4#56T eRZZ00R4DT%[M2RR0&& KK33JRQVQ^Q^_dQeQlQlQno;;2272zGYGYZ_G`GgGgGij

%%'8:J&KL    D$4$4$A$AA'+'7'7'9$151B1B$.$))00=,9$)0=0E0E0G0L0L0N0V0V0X$-$0 ..BCE{{k&7&775==?mNcNcNe;e*78I8I7JJk,446s;<F5==?SVCWBXXcdjdpdpcq$S)=%>t%D$EQH 
 4++00$2B2B2H2HII &&rww.AA&0?mn  $$6}7L7L7N$OP (,{{'>'>}U[U`U`bmsw'>'x$ "

=@d@dej@k l t tKK! (,'8'8'C'CM'a$JJ))+?*@Az11r!   c                   \        WP                  P                  4       4      pVf   \        RV4      h\	        V4      p\        VP                  4      p\        W84      w  rV	'       g   \        RV RV RV 24      hT
pVP                  V,          pV P                  P                  VRV/.R7      p\        V4      pV^8w  d   W8w  d   \        RV RV R	24      h\        V^ ,          R,          V4      w  rV'       d   W8w  d$   \        R
V RV RV^ ,          R,           R24      hRV^ ,          9   d   V^ ,          R,          P                  pV^ ,          P                  RV P                  V4      4      pV^ ,          P                  RV P                  ;'       d    T4      p. p. p. p\        VP                  4      p\        V4      p^VV&   \        V4       EF  pVP!                  VV4      pVV8  d   TM^ pVV,          pRV9   EdY   RV9   EdQ   \"        P$                  ! VR,          \&        V,          R7      p\"        P$                  ! VR,          4      p\)        VVP+                  4       VV4      p\-        V\"        P.                  4      '       g   Q R\1        V4       24       hVP2                  \"        P4                  8w  d    VP2                  \"        P6                  8w  g   Q RVP2                   24       h\-        V\"        P.                  4      '       g   Q R\1        V4       24       h\-        V\"        P.                  4      '       g   Q R\1        V4       24       hEM7\9        VP+                  4       VVVV P:                  VP                  R4      VP                  R4      R7      w  ppp\-        V\"        P.                  4      '       g   Q R\1        V4       24       hVP2                  \"        P4                  8w  d    VP2                  \"        P6                  8w  g   Q RVP2                   24       h\-        V\"        P.                  4      '       g   Q R\1        V4       24       h\-        V\"        P.                  4      '       g   Q R\1        V4       24       hVP=                  V4       VP=                  V4       VP=                  \"        P>                  ! V4      PA                  V4      4       EK  	  \"        PB                  ! VV4      pV\D        ,           pVR,           pVR,           p VPF                  V,          .p!\H        PJ                  PM                  V VPN                  V!\"        PP                  ! V4      PS                  4       4      p"\H        PJ                  PM                  VVV!\"        PP                  ! V4      PS                  4       4      p#V P                  PU                  V"V#.4       V'       Ege   V\H        PV                  PX                  \H        PV                  PZ                  39   d   VP2                  \"        P\                  \"        P^                  39  d   \a        RV R24      h\c        \e        VPg                  4       4      4      p$\H        PJ                  PM                  VVVV$RR7      p%V P                  PU                  V%.4       M\"        P>                  ! V\H        PJ                  Pi                  V4      R7      PA                  VPF                  4      p\H        Pj                  Pm                  VV4      p%V P                  PU                  V%.4       VVV 3# )Nz{} is not an initializerzWeight z# has a per-channel axis with value z  that is out-of-bounds for rank r$   r   z.Per-channel tensor quantization overrides for z must have either 1 or z& elements in the list of dictionaries.z"Tensor quantization overrides for z& specify an unexpected axis. Expected z
, but got r#   r   r   rm   r%   r   r   r   r   r   r   r   r   r   r   r   Tr   )7r   rj   r   r1   r   rJ   r   r   r~   get_per_channel_overridesr\   r9   r   rm   listrangetaker+   r   r   r   r   r'   r,   r)   r.   r/   r0   r   rt   appendr   r   concatenater
   r   r   r   r   r   hstackr   r   r   r   r  r  r  r  r  r   r  r  r   r   )&r2   r   rw   channel_axisrm   r
  r   weightsweights_rankis_axis_valid	axis_normchannel_countquant_overrides_for_channelsnum_channel_overridesis_axis_override_validaxis_overrider   zero_point_list
scale_listquantized_per_channel_data_listweights_shapereshape_dimsiper_channel_datachannel_override_indexchannel_quant_overridesr   r%   quantized_per_channel_dataquantized_weightsr  r  r  zero_scale_shaper  r  r  r  s&   &&&&&&                                r    quantize_weight_per_channel_impl.BaseQuantizer.quantize_weight_per_channel_impln  s    #;

0F0F0HI7EE'47==)#1,#M +&I, X**69 
 !l3'+'B'B'\'\v|&<%= (] (
$ !$$@ A A%*?*P@ N,o-SU 
 1??[\]?^_e?fht0u-%)F4[M B(>4PQR4STZ4[3\\]_  7::7:<HTTL0377TE]E]^jEkl	3A6::>4K\K\KmKmamn
*,'W]]+M*%&\"}%A&||A|<*+.C*CQ"&BCY&Z#11lF]6]XX&=l&KSghtSuv
!8!AB-= "2":":"<eZ.* "*bjj99`=MdS]N^M_;``9!''2::5*:J:Jbjj:X '
(8(8'9:X "%44V8He6VV4!"<bjjII &t,F'G&HII
 AN$,,. !-#'#6#6"9"="=f"E"9"="=f"EA=
E#= "*bjj99`=MdS]N^M_;``9!''2::5*:J:Jbjj:X '
(8(8'9:X "%44V8He6VV4!"<bjjII &t,F'G&HII "":.e$+222::>X3Y3a3abn3opU &Z NN+JLY#&>>- 8+
 (,,\:; KK33--/?:AVA]A]A_
  ;;22\#3RYY5O5V5V5X
 	

%%'8:J&KL   0 0 5 5t7G7G7M7MNN$**277BHH2EE&0?mn  $$67H7P7P7R$ST (,{{'>'>!<QU (? ($ 

--/C.DE$&JJ%++>>|L% '+**+ " (,'8'8'C'CDUWd'e$

--/C.DEgz11r!   c                   V P                   f   R # V P                  P                  4        EF  pVP                  R9   Ed+   V P	                  V4      '       g   K/  \        V P                  P                  4       VP                  ^ ,          ,          4      ^8w  d   Kq  VP                  ^ ,          V P                   9  g#   VP                  ^ ,          V P                   9  d   K  V P                   VP                  ^ ,          ,          p\        V\        4      '       g.   \        R\        V4       RVP                  ^ ,          : R24      hW P                   VP                  ^ ,          &   EK@  VP                  R8X  g   EKT  V P	                  V4      '       g   EKn  \        \        P                  ! R4      \        P                  ! R4      R7      V P                   VP                  ^ ,          &   EK  	  R # )	Nr   z for r#   Softmaxr         ?)lowesthighest)ClipRelu)rz   rj   nodesr   r   rJ   input_name_to_nodesri   rh   r'   r   r(   r)   r+   r/   )r2   r   tds   &  r   adjust_tensor_ranges"BaseQuantizer.adjust_tensor_ranges  s\   %JJ$$&D||//0066tzz557

1FG1L::a=(:(::dkk!nTXTfTf>f''A7!"j11#&6tBxjdkkRSnEWWX$YZZ46""4::a=1*00665?rzzRU`b`j`jkn`o5p""4;;q>2# 'r!   )rr   rv   ro   rn   rq   r   rs   rt   rj   r|   r{   r}   rk   rp   rl   rm   r   r~   rz   rf   rw   r8   )r;  )FF)TF)rM   rN   rO   rP   r5   r   r   r   r   r   r   r   r  r7  rC  rQ   rR   rS   s   @r   rU   rU   E   sR     HZT
 
"' A&R
hY2vL2\q qr!   rU   ) r   typingr   numpyr+   r   onnx.numpy_helperonnx.reference.op_runr   ImportError	calibrater   
onnx_modelr   quant_utilsr   r   r	   r
   r   r   r   r   r   r   r   r   r   r~   r   r   rU    r!   r   <module>rN     so        7
 " !    ? <Lq Lqm  s   A$ $	A0/A0