+
    9iz^                        ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHtHtH	t	H
t
HtHtHt ^ RIHtHt ^ RIHt ]P&                  ! ]4      tR tRR ltRR ltR t. ROtR	^.R
^^.R^^./t ! R R4      tRR ltRR ltR# )    N)AttributeProto
GraphProto
ModelProto	NodeProtoTensorProtohelpernumpy_helper)infer_shapesinfer_shapes_path)versionc           
         V  Uu. uF=  p\        \        VP                  R4      4      R,          P                  ^4      ^4      NK?  	  up# u upi )zl
Convert numpy float16 to python int.

:param np_list: numpy float16 list
:return int_list: python int list
H:   NN)intbinviewzfill)np_list_s   & ^/var/www/html/photoedit/myenv/lib/python3.14/site-packages/onnxruntime/transformers/float16.py_npfloat16_to_intr      sA     =DDGqCAFF3K $**2.2GDDDs   AAc           	        R pV \         P                  ! V ^ 8  4      ,          P                  ^ ,          ^ 8  d   V \         P                  ! V ^ 8  4      ,          P                  4       pV \         P                  ! V ^ 8  4      ,          P	                  4       pWB8  d   \
        P                  RV RV 24       WQ8:  d   \
        P                  RV RV 24       V \         P                  ! V ^ 8  4      ,          P                  ^ ,          ^ 8  d   V \         P                  ! V ^ 8  4      ,          P                  4       pV \         P                  ! V ^ 8  4      ,          P	                  4       pWr) 8:  d   \
        P                  RV RV)  24       Wa) 8  d   \
        P                  RV RV)  24       \         P                  ! V! ^ W4      W4      p \         P                  ! V! V) V ^ 4      V) V 4      p \         P                  ! V! W \        R4      4      W 4      p \         P                  ! V! \        R4      W) 4      V) V 4      p \         P                  ! V 4      # )a+  
Convert float32 numpy array to float16 without changing sign or finiteness.
Positive values less than min_positive_val are mapped to min_positive_val.
Positive finite values greater than max_finite_val are mapped to max_finite_val.
Similar for negative values. NaN, 0, inf, and -inf are unchanged.
c                 8    \         P                  ! W8  W8  4      # N)nplogical_and)abcs   &&&r   between&convert_np_to_float16.<locals>.between/   s    ~~aeQU++    zthe float32 number z will be truncated to infz-inf)	r   whereshapemaxminloggerdebugfloatfloat16)np_arraymin_positive_valmax_finite_valr    positive_maxpositive_minnegative_maxnegative_mins   &&&     r   convert_np_to_float16r3   '   s   , A&'--a014A 67;;=A 67;;=)LL.|n<RSaRbcd+LL.|n<RScRdefA&'--a014A 67;;=A 67;;=?*LL.|n<RTbSbRcde,,LL.|n<RTdSdRefgxx8>@P[Hxx!1 18Q?BRART\]Hxx%,GbHxxfxIN?\deH::hr"   c                :   \        V \        4      '       g   \        R\        V 4       24      hV P                  \        P
                  8X  d   \        P                  V n        V P                  '       dS   \        \        P                  ! V P                  4      W4      p\        V4      pW@P                  R&   . V P                  R&   V P                  '       dD   \        P                  ! V P                  RR7      p\        WQV4      pVP                  4       V n        V # )aa  Convert tensor float to float16.

Args:
    tensor (TensorProto): the tensor to convert.
    min_positive_val (float, optional): minimal positive value. Defaults to 1e-7.
    max_finite_val (float, optional): maximal finite value. Defaults to 1e4.

Raises:
    ValueError: input type is not TensorProto.

Returns:
    TensorProto: the converted tensor.
3Expected input type is an ONNX TensorProto but got :NNNfloat32dtype)
isinstancer   
ValueErrortype	data_typeFLOATFLOAT16
float_datar3   r   arrayr   
int32_dataraw_data
frombuffertobytes)tensorr-   r.   float16_dataint_listfloat32_listfloat16_lists   &&&    r   convert_tensor_float_to_float16rJ   I   s     fk**NtTZ|n]^^;,,,&..0&:K:K1LN^oL(6H#+a #%Fa ???==	JL0Q_`L*224FOMr"   c                     \         P                  ! V 4      P                  p\        P                  ! V P
                  V P                  V4      # r   )r	   to_arrayr%   r   make_tensor_value_infonamer<   )rE   r%   s   & r   make_value_info_from_tensorrO   n   s7    !!&)//E((f6F6FNNr"   Resize	GroupNormSkipGroupNormc                   H   a  ] tR t^t o RtV 3R lR ltV 3R lR ltRtV tR# )InitializerTrackerz'Class for keeping track of initializer.c                    < V ^8  d   QhRS[ /# )r   initializer)r   )format__classdict__s   "r   __annotate__InitializerTracker.__annotate__   s      K r"   c                .    Wn         . V n        . V n        R # r   )rV   
fp32_nodes
fp16_nodes)selfrV   s   &&r   __init__InitializerTracker.__init__   s    &r"   c                    < V ^8  d   QhRS[ /# )r   node)r   )rW   rX   s   "r   rY   rZ      s     ) )Y )r"   c                    V'       d   V P                   P                  V4       R # V P                  P                  V4       R # r   )r\   appendr]   )r^   rb   is_node_blockeds   &&&r   add_nodeInitializerTracker.add_node   s)    OO""4(OO""4(r"   )r]   r\   rV   N)	__name__
__module____qualname____firstlineno____doc__r_   rf   __static_attributes____classdictcell__)rX   s   @r   rT   rT      s     1 
) )r"   rT   c
                #   VR8  g   Q R4       hV\        \        P                  ! \        P                  4      P                  4      8:  g   Q R4       hVf   / MTp
\        V \        4      '       d   T p\        P                  ! \        P                  4      \        P                  ! R4      8  d~   V'       gv   \        P                  ! \        P                  P                  V4      R7      ;_uu_ 4       pVP                   p\#        W4       \        P$                  ! V4      p RpRRR4       M\        P$                  ! V4      p \        V \&        4      '       g   \)        R\+        V 4       24      hRpV'       gF   \        P                  ! \        P                  4      \        P                  ! R	4      8  d	    \,        p Vf   \.        pVf   . p\1        V4      p\1        V4      p\2        P5                  R
V RV RV RV RV RV RV 24       . p. p. p. pVe	   V! V 4      p VP7                  V 4       / p\1        4       p\1        4       pV P8                  P:                   Uu. uFD  pVP*                  P<                  P>                  \@        PB                  8X  g   K8  VP                   NKF  	  ppV P8                  PD                   Uu. uFD  pVP*                  P<                  P>                  \@        PB                  8X  g   K8  VP                   NKF  	  pp\        V\F        4      '       d6   V Uu. uF  pVV9   g   K  VNK  	  ppV Uu. uF  pVV9   g   K  VNK  	  ppMV'       g   . p. p\I        V P8                  P:                  4       EFJ  w  ppVP                   V9   g   K  R\        V4      ,           pVVVP                   &   VPK                  VP                   4       R\        V4      ,           pV P8                  PL                  PK                  4       pVPO                  V4       VVn        \@        PP                  VP*                  P<                  n        \R        PT                  ! RVP                   .V.\@        PP                  VR7      .pV P8                  PV                  PY                  V4       VP7                  V4       VPK                  V4       EKM  	  \I        V P8                  PD                  4       EF<  w  ppVP                   V9   g   K  R\        V4      ,           pVVVP                   &   VPK                  VP                   4       R\        V4      ,           pV P8                  PL                  PK                  4       pVPO                  V4       VVn        \@        PP                  VP*                  P<                  n        \R        PT                  ! RV.VP                   .^VR7      .pV P8                  PV                  PY                  V4       VP7                  V4       VPK                  V4       EK?  	  / pV'       Ed`   . p V EFQ  p!\        V!\&        4      '       d   V P7                  V!P8                  4       \        V!\Z        4      '       Ed   V!P\                   FO  pVP^                  \@        PB                  8X  g   K$  VP                   V9  g   Q h\a        V4      VVP                   &   KQ  	  V!PV                   EFN  pVP                   V9   d   K  \c        \e        VP:                  4      4       FD  pVP:                  V,          V9   g   K  VVP:                  V,          ,          VP:                  V&   KF  	  \c        \e        VPD                  4      4       FD  pVPD                  V,          V9   g   K  VVPD                  V,          ,          VPD                  V&   KF  	  VPf                  V9   ;'       g    VP                   V9   p"\I        VP:                  4       F|  w  ppVV9   g   K  T";'       gK    V\h        Pk                  VPf                  . 4      9   ;'       d     VV
Pk                  VPf                  . 4      9  p#VV,          Pm                  VV#4       K~  	  V"'       d   VP7                  V4       EK  VPf                  R8X  d]   VPn                   FL  p$V$P                   R8X  g   K  V$Pp                  \@        PB                  8X  g   K7  \@        PP                  V$n8         M	  VPf                  R 9   d   Rp%VPn                   FN  p$V$P                   R8X  g   K  Rp%V$Pp                  \@        PB                  8X  g   K9  \@        PP                  V$n8        KP  	  VPf                  R!9   dH   V%'       g@   VPn                  PY                  \R        Pr                  ! R\@        PP                  4      .4       VPf                  \h        9  g   VPf                  V
9   d(   VPn                   F  p$V P7                  V$4       K  	  EK=  VP7                  V4       EKQ  	  \        V!\t        4      '       d   V P7                  V!Pv                  4       V!Px                   F  pV P7                  V4       K  	  V!Pz                  PO                  \}        V!Pz                  W4      4       V!P~                   F  p\}        VW4      pK  	  \        V!\Z        4      '       g   EK  \        P                  ! V!P:                  V!PD                  V!PL                  4       EFP  pVP*                  P<                  P>                  \@        PB                  8X  dL   VP                   V9  d;   \@        PP                  VP*                  P<                  n        VP7                  V4       VP*                  P                  R4      '       g   K  VP*                  P                  P>                  P<                  P>                  \@        PB                  8X  g   K  VP                   V9  g   EK  \@        PP                  VP*                  P                  P>                  P<                  n        VP7                  V4       EKS  	  EKT  	  T pEKh  VP                  4        F  p&V'       g   V&P                  '       g   K  \}        V&P\                  W4      V&n.        VP7                  \        V&P\                  4      4       V&P                  '       g   Kr  V'       d   K|  \2        P                  RV&P                   24       K  	  V EF  p'\I        V'P:                  4       EFb  w  ppV\h        V'Pf                  ,          9  g"   VV
Pk                  V'Pf                  . 4      9   d   KF  V EF  p(VV(P                   8X  g   K  V P8                  PL                  PK                  4       pVPO                  V(4       V'P                   R,           \        V4      ,           pVVn        \@        PB                  VP*                  P<                  n        V'P                   R,           \        V4      ,           p\R        PT                  ! RV.V.^VR7      .pV P8                  PV                  PY                  V4       VV'P:                  V&    EK`  	  EKe  	  EK  	  V	'       d   \@        P                  M\@        PB                  p)V EF  p'\c        \e        V'P:                  4      4       EF%  pV'P:                  V,          pV EF  p(VV(P                   8X  g   K  V P8                  PL                  PK                  4       pVPO                  V(4       V'P                   R,           \        V4      ,           pVVn        V)VP*                  P<                  n        V'P                   R,           \        V4      ,           p\R        PT                  ! RV.V.V)VR7      .pV P8                  PV                  PY                  V4       VV'P:                  V&    EK#  	  EK(  	  \c        \e        V'PD                  4      4       EF%  pV'PD                  V,          p*V EF  p(V*V(P                   8X  g   K  V P8                  PL                  PK                  4       pVPO                  V(4       V'P                   R,           \        V4      ,           pVVn        V)VP*                  P<                  n        V'P                   R,           \        V4      ,           p\R        PT                  ! RV.V*.^
VR7      .pV P8                  PV                  PY                  V4       VV'PD                  V&    EK#  	  EK(  	  EK  	  V #   + '       g   i     ELm; i  i ; iu upi u upi u upi u upi )"aS  Convert tensor float type in the input ONNX model to tensor float16.

Args:
    model (ModelProto or str): The ONNX model or path of the model to convert.
    min_positive_val (float, optional): minimal positive value. Defaults to 5.96e-08.
    max_finite_val (float, optional): maximal finite value of float16. Defaults to 65504.
    keep_io_types (Union[bool, List[str]], optional): It could be boolean or a list of float32 input/output names.
                                                      If True, model inputs/outputs should be left as float32.
                                                      Defaults to False.
    disable_shape_infer (bool, optional): Skips running onnx shape/type inference.
                                          Useful if shape inference has been done. Defaults to False.
    op_block_list (List[str], optional): List of op types to leave as float32.
                                         Defaults to None, which will use `float16.DEFAULT_OP_BLOCK_LIST`.
    node_block_list (List[str], optional): List of node names to leave as float32. Defaults to None.
    force_fp16_initializers(bool): force converting all float initializers to float16.
                                   Default to false, which will convert only the one needed to avoid precision loss.
    force_fp16_inputs(Dict[str, List[int]]): Force the conversion of the inputs of some operators to float16, even if
                                             this script's preference it to keep them in float32.
Raises:
    ValueError: input type is not ModelProto.

Returns:
    ModelProto: converted model.
"\o>zginvalid min_positive_val. smallest positive float16 value: subnormal 5.96e-08, and normalized 6.104e-05z4invalid max_finite_val. largest float16 value: 65504Nz1.8.0)dirTz$Expected an ONNX ModelProto but got z1.2.0z"fp16 parameters: min_positive_val=z max_finite_val=z keep_io_types=z disable_shape_infer=z op_block_list=z node_block_list=z force_fp16_initializers=graph_input_cast_graph_input_castCast)torN   graph_output_cast_graph_output_castru   Fr8   sequence_typezXinitializer is used by both fp32 and fp16 nodes. Consider add these nodes to block list:_input_cast__input_cast_output_cast__output_cast)EyeLikeMultinomialRandomNormalRandomNormalLikeRandomUniformRandomUniformLikeSequenceEmpty	Bernoulli)r   r   r   )Jr*   r   finfor+   r&   r9   strr   parseonnx__version__tempfileNamedTemporaryFileospathdirnamerN   r   loadr   r:   r;   r
   DEFAULT_OP_BLOCK_LISTsetr(   r)   rd   graphinputtensor_type	elem_typer   r=   outputlist	enumerateadd
value_infoCopyFromr>   r   	make_noderb   extendr   rV   r<   rT   rangelenop_typeALWAYS_FLOAT_INPUTSgetrf   	attributeimake_attributer   ggraphstrJ   tensors	itertoolschainHasFieldrx   valuesr]   rO   r\   infoBFLOAT16)+modelr-   r.   keep_io_typesdisable_shape_inferop_block_listnode_block_listforce_fp16_initializersforce_fp16_inputs#use_bfloat16_as_blocked_nodes_dtypeforce_fp16_inputs_dict
model_pathtmpfileshape_infer_model_pathfunc_infer_shapequeuevalue_info_list	node_listmixed_float_type_node_listname_mappinggraph_io_to_skipio_castsnfp32_inputsfp32_outputsr   output_name	node_namenew_value_infonew_node
input_namefp32_initializers
next_levelqre   use_fp32_weightattr	has_dtypevaluerb   r   accuracy_typer   s+   &&&&&&&&&&                                 r   convert_float_to_float16r      s   H x' q' U288BJJ#7#;#;<<t>tt<#4#<RBS%
==))*gmmG.DDM`,,1LMMQX)0&!*E		"89&*# NM IIj)EeZ((?U}MNN7==1A1A#BgmmT[F\#\	+ -&M/*O
LL
,-=,>>N~N^^mn{m|  }R  Sf  Rg  gv  wD  vE  EV  Wf  Vg  g@  AX  @Y  	Z
 EOI
 "$ # '	LLLuuH#(;;#4#4j#4a8J8J8T8TXcXiXi8i6166#4Kj$)KK$6$6l$6q!&&:L:L:V:VZeZkZk:kFAFF$6Ll-&&"-D+Qm1Cqq+D#/F<a13E<F%++++,166[ -A6K#.L   (*SV3I"[[33779N##A&"-N8C8K8KN++5((!&&K=[M`M`gpqrHKK##H-"">2LL# -" %++,,-166\!-A6J#-L   (+c!f4I"[[33779N##A&",N8C8K8KN++5((*xAT]^_HKK##H-"">2LL# ." 8:
%
A!Z((!!!''*!Z((A{{k&7&77 vv->>>>4Fq4I)!&&1 '
 A vv) "3qww<0771:5)5aggaj)AAGGAJ 1 #3qxx=188A;,6*6qxx{*CAHHQK 2 '(ii=&@&]&]AFFoD]O)2177);:%)::.= / / !%8%<%<QYY%K K !W !W$%-C-G-G		SU-V$V , .j9BB1oV *< '!((+99.()#'99#4;CTCT9T-8-@-@DF$) )4
 99 	) 	 ).I()#'99#704I'+vv1B1B'B1<1D1D	 )4 !"		-_ _ir ! 2 2F4I4I'S^SfSf4g3h i 99,??199PfCf() * 1 1$ 7 )4 7==a@u  | !^,,!!!##&A%%a( "<QSSBRcdA7;K\A # !Z(( #!((ALLIAvv))33{7H7HH66)99;F;N;NAFF..8+2215vv7766//99EEOOS^SdSdd vv-==WbWjWj 4 4 > > J J T / 6 6q 9 Jk @ "))+"e&6&6&6 ?@Q@QSc tE""#>u?P?P#QR(?(?notoo  oA  B , +&tzz2MAz+DLL99QBXB\B\]a]i]ikmBn=n-
0%*[[%;%;%?%?%AN"++J7"&))n"<s1v"EK*5N'@K@Q@QN''33= $		M 9CF BI & 0 0*}YZaj klHKK$$++H5$/DJJqM . 3 +( -PK((U`UfUfM s4::'AAJ-
0%*[[%;%;%?%?%AN"++J7"&))n"<s1v"EK*5N'@MN''33= $		M 9CF BI & 0 0*}Yfmv wxHKK$$++H5$/DJJqM . (& s4;;'(A[[^F-
Z__,%*[[%;%;%?%?%AN"++J7!%_!<s1v!EJ*4N'@MN''33= $		N :SV CI & 0 0*xTV]f ghHKK$$++H5%/DKKN . )/ P LU NMM" @ klDFsV   30AF7AF2 !5AF7AF75AF<?AF<+	AG9AG	AGAGFAF/	F2AF4c                @   \        V \        4      '       g   \        R\        V 4       24      hV P                  \        P
                  8w  d   \        R4      hRpV P                  '       d!   \        P                  ! V P                  4      pV P                  '       d#   \        P                  ! V P                  RR7      pVf   \        R4      h\        W1V4      p\        P                  ! \        P                  ! V\        P                  ! V4      ,
          4      4      # )zSMeasure the maximum absolute difference after converting a float tensor to float16.r5   z#Expected tensor data type is float.Nr6   r7   zexternal data not loaded!)r9   r   r:   r;   r<   r=   r?   r   r@   rB   rC   RuntimeErrorr3   amaxabsr6   )rE   r-   r.   float32_datarF   s   &&&  r   float_to_float16_max_diffr     s    fk**NtTZ|n]^^;,,,>??Lxx 1 12}}V__IF677(XL77266,L)AABCCr"   )rp        @)ArrayFeatureExtractor	BinarizerCastMapCategoryMapperDictVectorizerFeatureVectorizerImputerLabelEncoderLinearClassifierLinearRegressor
NormalizerOneHotEncoderr   SVMClassifierSVMRegressorScalerTreeEnsembleClassifierTreeEnsembleRegressorTreeEnsembleZipMapNonMaxSuppressionTopKRoiAlignRangeCumSumMinMaxUpsample)	rp   r   FFNNFNF)r   loggingr   r   numpyr   r   r   r   r   r   r   r   r	   onnx.shape_inferencer
   r   	packagingr   	getLoggerrh   r(   r   r3   rJ   rO   r   r   rT   r   r    r"   r   <module>r      s      	    e e e @ 			8	$E D"JO
 D  !kAq6?QPQFS ) )yx	Dr"   