+
    9i-`                        ^ RI t ^ RIt^ RIHt ^ RIt^ RIt^ RIHt ^ RIH	t	H
t
H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 ^ R	IHtHtHt R
]P8                  R&   ] P:                  ! ]4      tR]P@                  /t!R$R lt"R t#R t$]PJ                  3R lt&R t'R t(R t)R t*R%R lt+R R lt,R R lt-R t.R%R lt/R t0R&R lt1R t2R t3R  t4R! t5R" t6R# t7R# )'    N)Path)AffinitySetting)OptimizerInfo	Precisioncreate_onnxruntime_session)MODEL_CLASSES)QuantizeHelper)torch_onnx_export)
AutoConfigAutoFeatureExtractorAutoTokenizerLxmertConfigTransfoXLConfig)PRETRAINED_GPT2_MODELSGPT2ModelNoPastStateTFGPT2ModelNoPastState2TF_CPP_MIN_LOG_LEVELtriuc                    Ve   Q h\        V P                  4      ^8X  d&   V P                  ^ 4      V P                  ^4      8X  g   Q h\        R,          pV! \        P
                  ! R\        P                  R7      V4      pVR V P                  ^ 4      1R V P                  ^4      13,          p\        P                  ! VP                  4       V \        P                  ! V 4      4      # )Nr   dtype)   r   )
lenshapesize
torch_functorchonesuint8wherebool
zeros_like)xdiagonalout
torch_triutemplatemasks   &&&   d/var/www/html/photoedit/myenv/lib/python3.14/site-packages/onnxruntime/transformers/onnx_exporter.py	triu_onnxr+   #   s    ;;qww<1affQi!777F#J%**\ExPHKaffQiK166!9,-D;;tyy{Au'7'7':;;    c                  $    \         \        n        R # N)r+   r   r    r,   r*   replace_torch_functionsr0   -   s	    EJr,   c                  2    \         R ,          \        n        R# )r   N)r   r   r   r/   r,   r*   restore_torch_functionsr2   1   s    F#EJr,   c                    VP                   R9   dZ   \        P                  P                  V^VP                  VP                  4      P                  \        P                  4      pRV/pV# \        P                  P                  ^ V ^,
          W3VR7      pRV/pRV9   d   \        P                  ! W.VR7      pWR&   RV9   d   \        P                  ! W.VR7      p	WR&   VP                  '       d   WgR&   \        V\        4      '       d   \        P                  P                  ^^VP                  4      P                  \        P                  4      VR&   \        P                  P                  ^^VP                  4      P                  \        P                  4      VR	&   \        V\         4      '       d5   \        P                  ! VP"                  .\        P                  R7      VR
&   V# )vitpixel_valueslowhighr   r   	input_idsattention_maskr   token_type_idsdecoder_input_idsvisual_feats
visual_posz@tf_transfo_xl_model/transformer/pos_emb/einsum/Einsum/inputs_1:0r4   swin)
model_typenumpyrandomrand
image_sizeastypefloat32randintr   zerosis_encoder_decoder
isinstancer   randnvisual_feat_dimvisual_pos_dimr   hidden_size)

vocab_size
batch_sizesequence_lengthinput_namesconfig	data_typer9   inputsr:   segment_idss
   &&&&&&    r*   create_onnxruntime_inputrX   5   s   O+LL%%j!V5F5FHYHYZaabgbobop	 ),$$azFckt$uI9%F;&Z$AS#1 ;&kk:"?yQ#.    &/"#&,''!&!3!3Aq&:P:P!Q!X!XY^YfYf!g~$||11!Q8M8MNUUV[VcVcd|&/**UZU`U` V
QR Mr,   c                 @    / pV F  pW09   g   K  W,          W#&   K  	  V# r.   r/   )rV   rS   remaining_model_inputs
input_names   &&  r*   filter_inputsr\   S   s,    !
171C". " "!r,   c                     \        V \        \        34      '       d   V  Uu. uF  p\        V4      NK  	  up.# T .# u upi r.   )rK   listtupleflatten)rV   is   & r*   r`   r`   [   s:    ,6ve},M,M(AWQZ(ZZSYZZ(s   <c                     V  F=  p\        V\        \        34      '       g   VP                  V4       K2  \	        W!4       K?  	  V# r.   )rK   r^   r_   appendupdate_flatten_list)rV   res_listra   s   && r*   rd   rd   _   s6    ",Qu">">DWXYDd Or,   c                    V R ,          P                   R,          pV  Uu/ uF	  q3^ R^R/bK  	  pp\        \        V4      4       Uu. uF  pR\        V^,           4      ,           NK  	  pp\	        V4       FR  w  rW^ R/WG&   W,          P                   p\	        V4       F&  w  rW8X  g   K  WG,          P                  V	R/4       K(  	  KT  	  WF3# u upi u upi )r9   rQ   seq_lenoutput_)r   ranger   str	enumerateupdate)example_inputsoutputs_flattenrR   keydynamic_axesra   output_namesoutput_namedimsjdims   &&         r*   build_dynamic_axesrw   e   s    $[177;ODRSNS!\1i88NLS49#o:N4OP4OqIAE
**4OLP#L1%&$5!!''oFA%)00!Y@ & 2 %% TPs   C"Cc           	      
   \        WR R7      pVf   \        P                  V  R24       R # \        P                  V  R24       VP	                  4        UUu/ uF  w  rxWxP                  4       bK  	  p	ppVP                  WY4      p
\        V4      \        V
4      8w  d0   \        P                  R\        V4       R\        V
4       24       R # \        \        V4      4       F  p\
        P                  ! \
        P                  ! W,          W+,          P                  4       P                  4       ,
          4      4      pVR8  d   \        P                  RV RV 24       V'       d   R	MRpV'       d   R
MRp\
        P                  ! W,          W+,          P                  4       P                  4       VVR7      '       d   K  \        P                  RV RV RV 24        R # 	  \        P                  RV  24       R# u uppi )F)enable_all_optimizationz is an invalid ONNX modelz is a valid ONNX modelz"Number of output tensors expected z, got g-C6?zMax absolute diff=z for output tensor g?g?)rtolatolzOutput tensor z is not close: rtol=z, atol=z0inference result of onnxruntime is validated on T)r   loggererrorinfoitemsrB   runr   rj   amaxabscpuallclose)onnx_model_pathrn   example_outputs_flattenuse_gpufp16rr   test_sessionktexample_ort_inputsexample_ort_outputsra   abs_diffrz   r{   s   &&&&&&         r*   validate_onnx_modelr   t   s    .o`efL((ABC
KK?##9:; 4B3G3G3IJ3I41!WWY,3IJ&**<L
"#s+>'??05L1M0NfUXYlUmTno	
 3./0::eii(;(>AXA[A_A_AaAgAgAi(ijkd?KK,XJ6I!MNu$u$~~"#&**,224	
 
 LL>!,@gdVTU 1  KKB?BSTU3 Ks   G?c                x    V ^8  d   QhR\         R\         R\        R\        R\        R\        R\        R\        /# )	   onnx_dir
model_nameinput_countoptimized_by_scriptr   	precisionoptimized_by_onnxruntimeuse_external_data)rk   intr"   r   )formats   "r*   __annotate__r      sX     7 777 7 	7
 7 7 #7 7r,   c                    ^ RI Hp V! RRV4      p	V'       g	   V	 RV 2p
MV'       d   RMRpV	 RV RV RV 2p
V'       d
   V
R,          p
T pV'       dc   V'       g[   \        P                  P	                  W
4      p\        P                  P                  V4      '       g   \        P                  ! V4       \        P                  P	                  W R24      # )r   )subz[^a-zA-Z0-9_]_gpur   _ortz.onnx)rer   ospathjoinexistsmakedirs)r   r   r   r   r   r   r   r   r   normalized_model_namefilenamedevice	directorys   &&&&&&&&     r*   get_onnx_file_pathr      s      0#zB+,Ak];!u+,Ak]!I;axPFI!9GGLL4	ww~~i((KK	"77<<	Zu#566r,   c                <    V ^8  d   QhR\         R\         R\         /# )r   	file_pathsuffixreturn)rk   )r   s   "r*   r   r      s&     	R 	R3 	R 	R 	Rr,   c                    \        V 4      p\        VP                  P                  VP                  V,           4      P                  VP                  4      4      # )z
Append a suffix at the filename (before the extension).
Args:
    path: pathlib.Path The actual path object we would like to add a suffix
    suffix: The suffix to add
Returns: path with suffix appended at the end of the filename and before extension
)r   rk   parentjoinpathstemwith_suffixr   )r   r   r   s   && r*   add_filename_suffixr      s?     	?Dt{{##DII$67CCDKKPQQr,   c                    V'       g&   \         P                  P                  V4      '       gG   \        V4      P                  P                  R R R7       ^ RIHpHp V! V VV^cR7      pV! V4      WA&   R# \        P                  RV 24       R# )Tparentsexist_ok)get_fusion_statisticsoptimize_by_onnxruntime)r   optimized_model_path	opt_level'Skip optimization since model existed: N)r   r   r   r   r   mkdir	optimizerr   r   r|   r~   )r   ort_model_pathr   	overwritemodel_fusion_statisticsr   r   r   s   &&&&&   r*   optimize_onnx_model_by_ortr      sv    ~66^##))$)FL $!/	
 3H2W/=n=MNOr,   c                    V'       g'   \         P                  P                  V4      '       Eg   \        V4      P                  P                  R R R7       ^ RIHp ^ RIH	p Vf	   V! V4      pVP                  V4       V\        P                  8X  d   R Vn        V\        P                  8X  d   RVn        VR8X  d   ^ p^ pV! V VVV^ VVRR7      pVR8X  g   VR	8X  d   VP!                  4        VP#                  4       W&   V\        P                  8X  d   VP%                  R R
7       VP'                  W4       R# \(        P+                  RV 24       R# )Tr   )FusionOptions)optimize_modelNFr@   )	num_headsrO   r   optimization_optionsr   only_onnxruntime
bert_kerasbert_tf)keep_io_typesr   )r   r   r   r   r   r   fusion_optionsr   r   r   use_raw_attention_maskr   FLOAT16enable_gelu_approximationINT8enable_embed_layer_normuse_dynamic_axesget_fused_operator_statisticsconvert_float_to_float16save_model_to_filer|   r~   )r   r   rA   num_attention_headsrO   r   r   r   r   r   use_external_data_formatr   r   r   	opt_models   &&&&&&&&&&&&   r*   optimize_onnx_modelr      s7    ';<<!"))//t/L0,'#0#< 334JK	)))=A :	&;@ 8 "#K
 #)#!5"	
	 %y)@&&(8A8_8_8a5	)))..T.B$$%9T=>R=STUr,   c                    Ve3   V\         9   d   V# \        RRP                  \         4      ,           4      hV \        9   d   R# ^ R IpVP                  RV 4      e   R# VP                  RV 4      e   R# VP                  RV 4      e   R	# R
# )NzValid model class:  r   z-squad$AutoModelForQuestionAnsweringz-mprc$"AutoModelForSequenceClassificationgpt2AutoModelWithLMHead	AutoModel)r   	Exceptionr   r   r   search)r   custom_model_classr   s   && r*   modelclass_dispatcherr     s~    %.%%1CHH]4KKLL++%	yyJ'3.	8Z	(	43	6:	&	2$r,   c                 @   \        W4      pVR 8X  d9   V'       d   \        P                  ! WVR7      # \        P                  ! WVR7      # V'       d
   RV,           p\	        RV.R7      p\
        P                  RV 24       \        We4      pVP                  WVR7      # )r   )rT   	cache_dirTFtransformers)fromlistzModel class name: )r   r   from_pretrainedr   
__import__r|   r~   getattr)r   rT   r   r   is_tf_modelmodel_class_nametransformers_modulemodel_classs   &&&&&   r*   load_pretrained_modelr   /  s    ,ZL11)99*_hii'77
]fgg"22$^?O>PQ
KK$%5$678-@K&&zI&VVr,   c                     \         P                  ! WR 7      p\        VR4      '       d   RVn        VP	                  V4       \        WW!R7      pWE3# )r   return_dictF)rT   r   r   )r   r   hasattrr   modifyr   )r   r   r   config_modifierrT   models   &&&&  r*   load_pt_modelr   B  sI    ''
HFv}%%"6"!*yqE=r,   c                     \         P                  ! WR 7      pVP                  V4       \        4       pVP	                  4        \        V VVVRR7      pVP                  4        WF3# )r   T)rT   r   r   r   )r   r   r   r   get_affinityr   set_affinity)r   r   r   r   rT   affinity_settingr   s   &&&&   r*   load_tf_modelr   N  sf    ''
HF6" '(!!#!&E !!#=r,   c                 (    ^ RI Hp V! V 4      w  r#W#3# )r   )tf2pt_pipeline)convert_tf_models_to_pytorchr  )r   r  rT   r   s   &   r*   load_pt_model_from_tfr  c  s     <":.MF=r,   c                    R pV'       d   \        VVVVRV4      pVP                  \        P                  P                  8X  d   VVVP                  3# VP                  \        P
                  P                  8X  g+   V\        P                  8X  g   V\        P                  8X  d   \        VV \        V4      R VVRV4      p\        VVVVP                  VP                  VVV	V
VVV4       TpV'       d"   \        VVVVV\        P                  8H  V4      pV\        P                  8X  dH   \        P                  RV 24       \         P"                  ! WV4       \        P                  RV 24       VP                  \        P$                  P                  8X  d$   V'       d   \'        VR4      p\)        VVVV
V4       TTVR9   d   VP*                  3# VP                  3# )TFzQuantizing model: zFinished quantizing model: r   r?   )r   namer   NOOPTrP   BYSCRIPTr   r   r   r   r   r   r   rO   r|   r~   r	   quantize_onnx_modelBYORTr   r   
num_labels)r   r   rA   r   rS   r   r   optimize_infovalidate_onnxr   r   rT   r   r   rn   r   rr   r   is_valid_onnx_modelr   r   s   &&&&&&&&&&&&&&&&&&   r*   validate_and_optimize_onnxr  m  s   ( 1#
 ]00555 3V5F5FFF 	m44999	)))	&1$	 
 	 &&"#$	
 /"5'Y...# 	&KK,_,=>?..QijKK5o5FGH]005550&IN&' 	'?:  AG@Q@Q r,   c                 P   \        WWe4      w  ppVP                  4        R pR pVR9   d   \        P                  ! WR7      p\        P
                  P                  ^ RVP                  VP                  ,          ^,          \        P                  R7      P                  VP                  VP                  ^4      pV! VRR7      pM6\        P                  ! WR7      pVP                  pVP                  RRR7      p\        VV4      pV! R/ VB p\        V\        \         34      '       g   Q R\#        V4       24       h\%        V4      p\'        V. 4      p\)        VV \+        V4      RV	V
RV4      pV'       g&   \,        P.                  P1                  V4      '       g   \2        P5                  R	V 24       \7        V4      P8                  P;                  R
R
R7       R pR pVR9   d   V Uu/ uF  pV^ R/bK
  	  upR.ppM\=        VV4      w  pp\?        4        \A        V\!        VPC                  4       4      V\        VPE                  4       4      VVR
VVR7	       \G        4        M\2        P5                  RV 24       \I        V VVVVV	V
VVVVVVVVVR V4      w  ppp VVV V3# u upi )Nr      r6   pt)return_tensorsThis is a sample inputz%type of output is not list or tuple: FExporting ONNX model to Tr   r5   logits)	r   argsfrS   rr   rq   do_constant_foldingopset_versionr   !Skip export since model existed: r?   r/   )%r   r   r   r   rB   rC   rH   rE   r    reshaper   model_max_lengthencode_plusr\   rK   r^   r_   typer`   rd   r   r   r   r   r   r|   r~   r   r   r   rw   r0   r
   valueskeysr2   r  )!r   r  r   rA   r   r   r   r   rS   r   r   optimizer_infor  r   r   r   r   rT   r   rn   max_input_sizeimage_processordata	tokenizerexample_outputsr   r   rq   rr   rp   onnx_model_filer  rP   s!   &&&&&&&&&&&&&&&&&                r*   export_onnx_model_from_ptr)    s   & "*9VMFE	IIKNN_$.>>z_||##&"3"3f6G6G"G!"KSXS^S^ $ 

'&##V%6%6
: 	 )dC!11*R	"33"../GX\.]">;?N-n-Ooe}55v9^_cds_t^u7vv5 &o612I2N(K 	O 77..?@A_$$**4$*G(N\)]ns#>/B*Bn)]`h_i,L,);NLc)d&L,!~,,./^0023%% $'%=
	
 	 !77HIJ7Q %84O(** /^KKS *^s   *J#c                    ^ RI pVP                  P                  . R4       \        P                  ! WR7      pVP
                  f   VP                  RR/4       VP                  p\        WWe4      w  ppVP                  \        V4      4       VP                  RRVRR	R
7      p\        VV4      pVP                  '       d$   VP                  RRVRR	R
7      P                  VR&   V R8X  dW   VP                  P!                  ^^VP"                  .4      VR&   VP                  P!                  ^^VP$                  .4      VR&    VP&                  '       d   RVn        T! TRR7      pRpT R8X  g   T R8X  d   R.pTR,          p^ RIHp TP/                  T4      p\1        TT \        T4      RT	T
RT4      pT'       d   TRR MTpT'       g'   \2        P4                  P7                  T4      '       Eg   \8        P;                  RT 24       T'       g'   \=        T4      P>                  PA                  R	R	R7       ^ RI!p^ RI"pTPF                  PI                  TPF                  PJ                  4       . pTPM                  4        FY  w  p p!R.\        T!PN                  4      ,          p"TPQ                  TPS                  \U        T"4      T!PV                  T R7      4       K[  	  TPX                  P[                  T\U        T4      TTTR7      w   p#T'       d   TP]                  TR4      ;_uu_ 4       p$T$P_                  \2        P4                  Pa                  T4      4       RRR4       \2        P4                  Pc                  \2        P4                  Pa                  T4      R4      p\2        P4                  P7                  T4      '       d   \2        Pd                  ! T4       \2        Pf                  ! TT4       M\8        P;                  RT 24       TR,           p\i        T TTTTT	T
TTTTTTTTTTT4      w  p%p&p'T%T&T'T3#   \(         d     ELi ; i  + '       g   i     L; i)r   NGPUr   	pad_tokenz[PAD]r  tf
max_lengthT)r  r.  padding
truncationr<   zunc-nlp/lxmert-base-uncasedr=   r>   F)trainingzxlnet-base-casedzxlnet-large-casedlast_hidden_state)nestr  r   )r  )input_signatureopsetlarge_modeloutput_pathrz__MODEL_PROTO.onnxr  _tf)5
tensorflowrT   set_visible_devicesr   r   r,  add_special_tokensr  r   resize_token_embeddingsr   r  r\   rJ   r9   rC   normalrM   rN   	use_cacher   tensorflow.python.utilr3  r`   r   r   r   r   r|   r~   r   r   r   zipfiletf2onnxlogging	set_levelERRORr   r   rc   
TensorSpecr_   r   convert
from_kerasZipFile
extractalldirnamer   removerenamer  )(r   r  r   rA   r   r   r   r   rS   r   r   r"  r  r   r   r   r   r-  r&  r#  rT   r   rn   r'  rr   r3  r   r   tf_internal_model_pathrB  rC  specsr  valuert   r   zoptimized_onnx_pathr  rP   s(   &&&&&&&&&&&&&&&&&                       r*   export_onnx_model_from_tfrT  =  s   ( II!!"e,--jNI"$$k7%;<//N!*9VMFE	!!#i.1** ! + N #>;?N   .7.C.C$%  /D /
 ) 	*+ 22)+)9)91aAWAW:X)Y~&')yy'7'7Av?T?T8U'V|$$F NU;OL '':9L+L+,)*=> ,"ll?;(K 	O 6N_Sb1Sb'=>>..?@A''(//55dT5R!!'//"7"78)//1KD%6C,,DLLuT{EKKdKL 2 ))!%L0. * 
1 $!7==RWW__-CDE >%'WW\\"''//BX2Y[o%p"ww~~o..		/*II,o> 	77HIJe#J;U %<8,j, 		 g  f >=s$   P9 P9 +/Q9QQQ	)r   Nr.   )F)8rD  r   pathlibr   rB   r   affinity_helperr   benchmark_helperr   r   r   huggingface_modelsr   quantize_helperr	   torch_onnx_export_helperr
   r   r   r   r   r   r   0onnxruntime.transformers.models.gpt2.gpt2_helperr   r   r   environ	getLogger__name__r|   r   r   r+   r0   r2   int64rX   r\   r`   rd   rw   r   r   r   r   r   r   r   r   r   r  r  r)  rT  r/   r,   r*   <module>r`     s     	    + Q Q , * 6 g g  &)

! "			8	$ ejj!
<$ fkepep <"[&)X7B	RP"8Vv,W&	*^BlL^Rr,   