
    i                        S SK Jr  S SK Jr  S SK Jr  S SKrS SKrS SKrS SKrS SKrS SK	r	S SK
r
S SKrS SKJr  S SKJr  S SKrS SKrS SKrS SKJrJr  S SKJr  S SKJr  S S	KJrJr  S S
KJr  S SK J!r!J"r"  S SK#J$r$  S SK%J&r&  S SK'J(r(   " S S\5      r)S r*S r+SS jr,S r-SSS/ / S4S jr.SSSS/ / S4S jr/S r0S r1SS jr2g)    )absolute_import)division)print_functionN)tqdm)ArgumentParserRawDescriptionHelpFormatter)TrainingStats)
save_model)
print_dictAverageMeter)
get_logger)WandbLoggerLoggers)profiler)build_dataloader)exportc                   >   ^  \ rS rSrU 4S jrSU 4S jjrS rSrU =r$ )
ArgsParser,   c                    > [         [        U ]  [        S9  U R	                  SSSS9  U R	                  SSSS	S
9  U R	                  SS[
        S SS9  g )N)formatter_classz-cz--configzconfiguration file to use)helpz-oz--opt+zset configuration options)nargsr   z-pz--profiler_optionszXThe option of profiler, which should be in format "key1=value1;key2=value2;key3=value3".)typedefaultr   )superr   __init__r   add_argumentstr)self	__class__s    W/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/paddleocr/tools/program.pyr   ArgsParser.__init__-   sh    j$(9T(U$
1LM$s9TU 5 	 	
    c                    > [         [        U ]  U5      nUR                  c   S5       eU R	                  UR
                  5      Ul        U$ )Nz,Please specify --config=configure_file_path.)r   r   
parse_argsconfig
_parse_optopt)r!   argvargsr"   s      r#   r'   ArgsParser.parse_args:   sC    Z1$7{{&V(VV&??488,r%   c                     0 nU(       d  U$ U HK  nUR                  5       nUR                  S5      u  pE[        R                  " U[        R                  S9X$'   MM     U$ )N=Loader)stripsplityamlloadr1   )r!   optsr(   skvs         r#   r)   ArgsParser._parse_opt@   sP    MA	A773<DA		!DKK8FI  r%    N)	__name__
__module____qualname____firstlineno__r   r'   r)   __static_attributes____classcell__)r"   s   @r#   r   r   ,   s    
 r%   r   c                     [         R                  R                  U 5      u  pUS;   d   S5       e[        R                  " [        U S5      [        R                  S9nU$ )zy
Load config from yml/yaml file.
Args:
    file_path (str): Path of the config file to be loaded.
Returns: global config
)z.ymlz.yamlzonly support yaml files for nowrbr0   )ospathsplitextr4   r5   openr1   )	file_path_extr(   s       r#   load_configrL   K   sO     WWi(FA##F%FF#YYtIt,T[[AFMr%   c                    UR                  5        H  u  p#SU;  a5  [        U[        5      (       a  X ;   a  X   R                  U5        M:  X0U'   M@  UR	                  S5      nUS   U ;   d(   SR                  U R                  5       US   5      5       eXS      n[        USS 5       H!  u  pgU[        U5      S-
  :X  a  X5U'   M  XW   nM#     M     U $ )zg
Merge config into global config.
Args:
    config (dict): Config to be merged.
Returns: global config
.r   zathe sub_keys can only be one of global_config: {}, but get: {}, please check your running command   N   )	items
isinstancedictupdater3   formatkeys	enumeratelen)r(   r6   keyvaluesub_keyscuridxsub_keys           r#   merge_configr_   X   s     jjl
c>%&&3=""5)#syy~HA;&( 88>KKM8A;9( !%C )(12, 7#h-!++#(L,C	 !8 #( Mr%   Fc                    Sn U (       a  U(       a  [        S5        U (       aM  [        R                  " 5       (       d3  [        UR                  SSSS5      5        [        R
                  " S5        U(       aV  [        R                  R                  5       (       d3  [        UR                  SSSS5      5        [        R
                  " S5        U(       Ga#  [        [        R                  R                  5      S	:w  a  [        [        R                  R                  5      S
::  a~  [        [        R                  R                  5      S::  aW  [        R                  R                  5       (       d3  [        UR                  SSSS5      5        [        R
                  " S5        OW[        R                  R                  S5      (       d3  [        UR                  SSSS5      5        [        R
                  " S5        U(       aV  [        R                  R                  5       (       d3  [        UR                  SSSS5      5        [        R
                  " S5        U(       aY  [        R                  R                  S5      (       d4  [        UR                  SSSS5      5        [        R
                  " S5        ggg! [         a
  n SnAgSnAff = f)zG
Log error and exit when set use_gpu=true in paddlepaddle
cpu version.
zConfig {} cannot be set as true while your paddle is not compiled with {} ! 
Please try: 
	1. Install paddlepaddle to run model on {} 
	2. Set {} as false in config file to run model on CPUz)use_xpu and use_gpu can not both be true.use_gpucudagpurO   use_xpuxpur   rP      use_npunpuuse_mlumlugcuuse_gcuN)printpaddleis_compiled_with_cudarU   sysexitdeviceis_compiled_with_xpuintversionmajorminoris_compiled_with_npuis_compiled_with_custom_deviceis_compiled_with_mlu	Exception)ra   rd   rg   ri   rl   erres          r#   check_devicer~   v   s   	 w=>67799#**YyABHHQK6====??#**Yui@AHHQKFNN(()Q.,,-2,,-2}}99;;#**YuiHIHHQK }}CCEJJ#**YuiHIHHQK6====??#**Yui@AHHQK6==GGNN#**Yui@AHHQK O7  s   J0J7 7
KKc                 \   [        U [        5      (       a  U  H  n[        X   [        5      (       d  [        X   [        5      (       a  [        X   5      X'   MB  [        X   [        R
                  5      (       d  Me  X   R                  [        R                  5      X'   M     U $ [        U [        5      (       a  [        [        U 5      5       H  n[        X   [        5      (       a  [        X   5      X'   M+  [        X   [        5      (       a  [        X   5      X'   MS  [        X   [        R
                  5      (       d  Mv  X   R                  [        R                  5      X'   M     U $ [        U [        R
                  5      (       a  U R                  [        R                  5      n U $ r<   )
rR   rS   list
to_float32rn   Tensorastypefloat32rangerX   )predsr8   s     r#   r   r      s*   %A%(D))Z$-G-G%eh/EHfmm44 8??6>>:	  L 
E4	 	 s5z"A%(D))%eh/EHd++%eh/EHfmm44 8??6>>: # L 
E6==	)	)V^^,Lr%   O2float16c                    U S   R                  SS5      nU S   R                  SS5      nU S   S   nU S   S   nU S   S   nU S   S	   nU S   R                  S
S 5      nU S   nU S   R                  SS5      nU S   R                  SS5      nSnSU
;   a  U
S   nSn[        U[        5      (       aq  [        U5      S:  ab  U(       d  US   OSnU(       d  US   OUU-  n[        U5      S:X  a  UR	                  S5        SnUR	                  SR                  UU5      5        U S   S   nU S   S   n [        R                  R                  U 5      (       d  [        R                  " U 5        U	R                  n!U!S0n"U"R                  U
5        [        US/5      n#Sn$UR                  5         U S   S   S:H  n%/ SQn&Sn'U S   S   S:X  a*  U S   S    H  n(U'=(       d    U S   S   U(   S   U&;   n'M     OU S   S   U&;   n' U S   S   n)U S   S   n*SU";   a  U"S   OSn+Sn,S n-S n.[        R                  " 5       n/[        5       n0[         R"                  " 5       S!:X  a  [        U5      S-
  O
[        U5      n1[%        U+US-   5       G	H  n2UR&                  R(                  (       a>  [+        U S"X;U2S#9n[         R"                  " 5       S!:X  a  [        U5      S-
  O
[        U5      n1[-        U5       GH  u  n3n4UR                  5         [.        R0                  " U5        U-[        R                  " 5       U/-
  -  n-U3U1:  a    GOUR3                  5       n5U4S   n6U%(       a  Sn$U(       a  [4        R6                  R9                  UUUUS$9   U)S%:X  d  U'(       a  U" U6U4SS  S&9n7O8U)S';   a	  U" U45      n7O)U*S(;   a  U" U4S S) 5      n7OU*S*;   a	  U" U45      n7OU" U65      n7S S S 5        [;        W75      n7U" U7U45      n8U8S+   n9UR=                  U95      n:U:R?                  5         URA                  UU:5        O~U)S%:X  d  U'(       a  U" U6U4SS  S&9n7O8U)S,;   a	  U" U45      n7O)U*S(;   a  U" U4S S) 5      n7OU*S*;   a	  U" U45      n7OU" U65      n7U" U7U45      n8U8S+   n9U9R?                  5         URC                  5         URE                  5         U(       GaQ  U2U-  S:X  GaG  U4 V;s/ s H  n;U;RG                  5       PM     n4n;U)S,;   a
  U	" U7U45        OU)S-;   a  U" U7U45      n<U	" U<U45        OU*S(;   a  S.n)U	" U7S   U4SS  U3S:H  S/9  OU*S0;   a  S1n)U" U7U4S   S2S39n<U	" U<S   U<S   U3S:H  S/9  OU*S4;   a"  S5n)U" U7S   U4S   S2S39n<U	" U<S   U<S   U3S:H  S/9  OvU*S6;   a"  S7n)U" U7S   U4S   S2S39n<U	" U<S   U<S   U3S:H  S/9  ONU S8   S9   S:;   a  U" U7S;   U4S   5      n<O)U S8   S9   S<;   a  U" U7U4S   U4S=   5      n<OU" U7U4S   5      n<U	" U<U45        U	RI                  5       n=U#R                  U=5        [        R                  " 5       U/-
  n>U.U>-  n.U0R                  U>5        US-  nU,[        U65      -  n,[        U[J        5      (       d  URC                  5         U8RM                  5        V?V@s0 s H@  u  n?n@U?U@RN                  / :X  a  [K        W@5      OW@RG                  5       RQ                  5       _MB     nAn?n@U5UAS'   U#R                  UA5        Ub8  [R        RT                  " 5       S:X  a  URW                  U#R                  5       S>US?9  US:  a	  UU-  S:X  d  U3[        U5      S-
  :  Ga'  U#RY                  5       nBUS-   U2-
  [        U5      -  U3-
  S-
  U0RZ                  -  nC[]        [^        R`                  " [c        UC5      S@95      nDSAnESAnF[4        Rd                  Rg                  5       (       ae  U(       a^  SB[4        Rd                  Rh                  Rk                  5       SC-   SD3nESE[4        Rd                  Rh                  Rm                  5       SC-   SF3nFSGR                  U2UUWBU-U-  U.U-  U,U-  U,U.-  WDWEWF5      nGUR	                  UG5        Sn,S n-S n.UU:  GaD  UU-
  U-  S:X  Ga7  [R        RT                  " 5       S:X  Ga  U$(       a>  [4        Rn                  Rq                  SHURs                  5       SISJSK9nHUHRu                  5         [w        UUUU	U)U'UUUUUSL9nISMR                  SNRy                  UIRM                  5        V?V@s/ s H  u  n?n@SOR                  U?U@5      PM     sn@n?5      5      nJUR	                  UJ5        Ub  URW                  WISPUS?9  WIU!   U"U!   :  a  U"R                  WI5        U2U"SQ'   SRnKU(       aG  [{        U U[        R                  Ry                  U WKSS5      5        [|        R~                  " 5         U2U"ST.nLOS nL[        UUU(       a   [        R                  Ry                  U WK5      OU UU SWKWLU"U2USU9  SVR                  SNRy                  U"RM                  5        V?V@s/ s H  u  n?n@SOR                  U?U@5      PM     sn@n?5      5      nMUR	                  UM5        Ub6  URW                  SWR                  U!5      U"U!   0SPUS?9  UR                  SSRU"SX9  [        R                  " 5       n/GM     [R        RT                  " 5       S:X  a  SYnKU(       aF  [{        X[        R                  Ry                  U WKSS5      5        [|        R~                  " 5         U2U"ST.nLOS nL[        UUU(       a   [        R                  Ry                  U WK5      OU UU SWKWLU"U2USU9  Ub  UR                  SSYSZ9  [R        RT                  " 5       S:X  d  G	M   U2S:  d  G	M)  U2U-  S:X  d  G	M5  S[R                  U25      nKU(       aF  [{        X[        R                  Ry                  U WKSS5      5        [|        R~                  " 5         U2U"ST.nLOS nL[        UUU(       a   [        R                  Ry                  U WK5      OU UU SWKWLU"U2UU2U S   S   :H  S\9  Uc  G	M  UR                  SS[R                  U25      SZ9  G
M     SVR                  SNRy                  U"RM                  5        V?V@s/ s H  u  n?n@SOR                  U?U@5      PM     sn@n?5      5      nMUR	                  UM5        [R        RT                  " 5       S:X  a  Ub  UR                  5         g !   S n) GN= f! , (       d  f       G	NW= fs  sn;f s  sn@n?f s  sn@n?f s  sn@n?f s  sn@n?f )]NGlobalcal_metric_during_trainFcalc_epoch_intervalrO   log_smooth_window	epoch_numprint_batch_stepeval_batch_stepeval_batch_epochprofiler_optionsprint_mem_infoTuniform_output_enabledr   global_steprP   zFNo Images in eval dataset, evaluation during training will be disabledg=:YVz_During the training process, after the {}th iteration, an evaluation is run every {} iterationssave_epoch_stepsave_model_dirlrArchitecture	algorithmSRN)r   NRTRSARSEEDSVTR
SVTR_LCNetSPIN	VisionLANRobustScannerRFLDRRGSATRN
SVTR_HGNetParseQCPPDDistillationModels
model_typestart_epoch        WindowsTrain)seed)levelcustom_black_listcustom_white_listdtypetabledatakie)CAN   )LaTeXOCR	UniMERNetPP-FormulaNet-SPP-FormulaNet-Lloss)r   sr)r   canepoch_reset)r   latexocrtrain)mode)r   	unimernet)r   r   pp_formulanetLossname)	MultiLossMultiLoss_v2ctc)VLLossTRAIN)metricsprefixstep)seconds z, max_mem_reserved: i   z MB,z max_mem_allocated: z MBzepoch: [{}/{}], global_step: {}, {}, avg_reader_cost: {:.5f} s, avg_batch_cost: {:.5f} s, avg_samples: {}, ips: {:.5f} samples/s, eta: {}{}{}g333333?i'  i	=  )
parametersmin_average_windowmax_average_window)extra_inputscaler	amp_levelamp_custom_black_listamp_custom_white_list	amp_dtypezcur metric, {}z, z{}: {}EVAL
best_epochbest_accuracy	inference)epochmetric)is_bestr   save_model_infobest_model_dictr   r   zbest metric, {}zbest_{})r   r   metadatalatest)r   r   ziter_epoch_{})r   r   r   r   r   r   	done_flag)CgetrR   r   rX   inforU   rE   rF   existsmakedirsmain_indicatorrT   r	   r   timer   platformsystemr   dataset
need_resetr   rW   r   add_profiler_stepget_lrrn   amp	auto_castr   scalebackwardminimizer   
clear_gradnumpy
get_metricfloatrQ   shapemeandistget_ranklog_metricslogavgr    datetime	timedeltart   rr   ro   rb   max_memory_reservedmax_memory_allocatedincubateModelAverager   applyevaljoinr   gccollectr
   	log_modelclose)Nr(   train_dataloadervalid_dataloaderrr   model
loss_class	optimizerlr_schedulerpost_process_class
eval_classpre_best_model_dictloggerstep_pre_epoch
log_writerr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   start_eval_stepr   r   r   r   train_statsmodel_averageuse_srnextra_input_modelsr   rY   r   r   r   total_samplestrain_reader_costtrain_batch_costreader_start	eta_metermax_iterr   r]   batchr   imagesr   r   avg_lossscaled_avg_lossitempost_resultr   train_batch_timer8   r9   statslogseta_seceta_sec_formatmax_mem_reserved_strmax_mem_allocated_strstrsModel_Average
cur_metriccur_metric_strr   
model_infobest_strsN                                                                                 r#   r   r      sC   * %X.223LeT *../DaHx()<=x -Ih'(:;X&'89Oh'++,>E01H%))*:DAN#H-112JERK++)-8O/4((S-AQ-F4D/!,! $ A"22 	
  A%KK# $O77=v8	
 X&'89OH%&67N77>>.))
N#..N%q)O./ 1D6:KM	KKM^$[1U:G" Knk*n<.)(3C &.)(3C8E%&  4 ^,[9=OON+L9
 ~&{3I +8?*J&PQ  M99;LI ??	) 	!!"  {IM2##../e 
 ??$	1 $%))*  $$45JCKKM&&'78|!;;h!!#B1XF $ZZ))#&;&;#	 *  "W, %f59 =#w. %e"g- %eBQi 0" '  !&e %f)* #5)!%/<"(,,x"8((*	?;(K!&uQRy9E=0!%LE')!%),E #  "%LE!&ME!%/<!!#   " (E4G,G1,L278%$%8.ue,9,"4UE"BK{E2')!&JuQxqrK,.!+J"4UE!H7"SK{1~{1~CSTHV-/!,J"4U1XuQxg"VK{1~{1~CSTHV"HH!0J"4U1XuQxg"VK{1~{1~CSTHVf~f- 2  '9!%L%('  /:=&8a%PR)&T&8a&I{E2#..0""6*#yy{\9 00-.1KS[(MlE22!!#
 !JJL(DAq qww"}58!'')..2BB(   E$Ku%%$--/Q*>&&'OO-gK '  aK2B$Ba$Gs+,q00"( ]U*c2B.CCcIAMMM" "%X%7%7G%M!N')$(*%==6688^-A&--BTBTBhBhBjoxByAzz~+(.B6==CUCUCjCjClqzC{B||  -A)99?!#),<<(+;;%(88%(88&,-: " D! !$'!#&  o- ?2oEJMMOq( $*OO$@$@#(#3#3#5+0+0	 %A %M "'')!$& +!'*?*?'
 "2!8!8IIAQAQASTASAxq!4ASTU" N+ )** *6 +  n-1PP#**:649OL1,F-"!GGLLM
 

/4%P
%)
!  6 GGLL@!/ $%(2(7#$/" -33II;J;P;P;RS;R41aA.;RS
 H%)**%,,^<o .?!
  &( +  (( $_ )   99;Lw 6x ==?aF%vbggll>6;&WX

',H
!
 . GGLL8' * /'$ %$$U8$D==?aEAI%/2IQ2N$++E2F%vbggll>6;&WX

',H
!
 . GGLL8' * /'6(#3K#@@!$ %$$!/*@*@*G % 	 3F
 !''		_5J5J5LM5LTQ8??1a(5LMNH KK}}!
 6
}

V j 9^X UV Td Ns8   t At#t5At:
u u0ut #
t2c           	         U R                  5         [        R                  " 5          SnSn[        [	        U5      SSSS9n[
        R                  " 5       S:X  a  [	        U5      S-
  O
[	        U5      nSn[        U5       GHZ  u  nnUU:  a    GOOUS   n[        R                  " 5       nU(       a  [        R                  R                  UUU
S9   US	:X  d  U(       a  U " UUSS  S
9nOQUS;   a	  U " U5      nOBUS;   a  U " US S 5      nO0US;   a	  U " U5      nO!US;   a  U " U5      nUS   nUS   nOU " U5      nS S S 5        [        W5      nOiUS	:X  d  U(       a  U " UUSS  S
9nOQUS;   a	  U " U5      nOBUS;   a  U " US S 5      nO0US;   a	  U " U5      nO!US;   a  U " U5      nUS   nUS   nOU " U5      n/ nU HT  n[        U[        R                  5      (       a!  UR                  UR                  5       5        MC  UR                  U5        MV     U[        R                  " 5       U-
  -  nUS;   a   Uc
  U" UU5        OuU" UU5      nU" UU5        ObUS;   a
  U" UU5        ORUS;   a  U" US   USS  US:H  S9  O:US;   a  U" UUS   S5      nU" US   US   US:H  S9  OU" UUS   5      nU" UU5        UR!                  S5        U[	        U5      -  nUS-  nGM]     UR#                  5       nS S S 5        WR%                  5         U R'                  5         WS:  a
  WU-  WS'   U$ SWS'   U$ ! , (       d  f       GN= f! , (       d  f       NW= f)Nr   zeval model:r   T)totaldescpositionleaver   rO   )r   r   r   r   r   r   )r   r   )r   )r   sr_imglr_img)r   r   r   )r   r   rP   r   r  fps)r  rn   no_gradr   rX   r   r   rW   r   r   r   r   rR   r   appendr   rT   r   r  r   )r  r  r  r  r   r   r   r   r   r   r   total_frame
total_timepbarr,  
sum_imagesr]   r-  r.  startr   rE  rF  batch_numpyr1  r2  r   s                              r#   r  r  y  sx    
JJL		
&'mat

  I-  !A%%& 	
 
#$45JCh1XFIIKE ZZ))#&;# * 
 "W, %f59 =#w. %e#w. %eBQi 0#|3 %e#v- %e!&x!&x %f%& #5)(K!&uQRy9E7*!%LE7*!%),E#MM!%LE6)!%LE"8_F"8_F!&MEKdFMM22&&tzz|4&&t,	  $))+--J--%-uk2"4UK"HK{K8v%5+.w&58[_3!8MII0a&I;q>;q>qR0AG;4KKN3v;&K!OJQ 6T &&(m 
p 	JJL	KKMA~#j0u M uMW ) 
	s&   B)L?A*L-9F5L?-
L<7L??
Mc                    Uu  p4Uu  pV[         R                  " USS9nUR                  5       nUR                  5       n[        [	        U5      5       H  nX7   S   XG   S   :X  d  M  XW   nXg   n	[        [	        U	5      5       HW  n
X   nXR                  5       ;   a5  X   S   X   S   -  X   -   X   S   S-   -  X   S'   X   S==   S-  ss'   MO  X   S/X'   MY     M     U $ )Nr   )axisr   rO   )rn   argmaxr   r   rX   rV   )char_centerr2  r   resultlabelfeatslogits
idx_samplefeatlogitidx_timeindexs               r#   update_centerr]    s   MFME]]6+FKKME\\^FCJ'
a E$5a$88$D&E!#e*-,,..#*1-0B10EEV$+A.2-4K&q)  &q)Q.)*..!)<K& .	 ( r%   c                    [        [        U5      SS9n[        R                  " 5       S:X  a  [        U5      S-
  O
[        U5      n[	        5       n[        U5       Hu  u  pgXd:  a    OmUS   n[        R                  " 5       n	U " U5      n
U Vs/ s H  oR                  5       PM     nnU" XS   5      n[        X\U
5      nUR                  S5        Mw     UR                  5         UR                  5        H  nX]   S   X]'   M     U$ s  snf )Nzget center:)rA  rB  r   rO   r   )r   rX   r   r   rS   rW   r   r   r]  rT   r  rV   )r  eval_dataloaderr  rL  r,  rS  r]   r-  r.  rN  r   r1  r2  rY   s                 r#   
get_centerr`     s    c/*?D ??	) 	Oq ! 
 &K0
?q		f*/0%$%0(a9 $KeDA 1 	JJL!&+A. " 1s   Dc                    [        5       R                  5       nUR                  n[        UR                  5      n[        X1R                  5      nSUR                  0n[        X45      nU (       a  US   S   n[        R                  " USS9  [        [        R                  R                  US5      S5       n[        R                  " [        U5      USSS	9  S S S 5        S
R                  U5      nOS nUS   R!                  SS5      n[#        XxS9n	US   R!                  SS5      n
US   R!                  SS5      nUS   R!                  SS5      nUS   R!                  SS5      nUS   R!                  SS5      nUS   S   nUS;   d   eU(       a'  SR                  [        R$                  " SS5      5      nOU(       a'  SR                  [        R$                  " SS5      5      nOU(       a'  SR                  [        R$                  " SS5      5      nOeU(       a'  SR                  [        R$                  " SS5      5      nO7U
(       a.  SR                  [&        R(                  " 5       R*                  5      OS n[-        XXU5        [.        R0                  " U5      n[&        R2                  " 5       S!:g  US   S"'   / nS#US   ;   a   US   S#   (       a  U	R5                  S$5        S nS%US   ;   a  US   S%   (       d  S&U;   ac  US   S   nS'R                  U5      nS&U;   a  US&   nO
[        5       nUR7                  S(U05        [9        S+0 UDS)U0D6nUR;                  U5        OS n[=        X95        U(       a  [?        U5      nOS nU	RA                  S*R                  [.        RB                  U5      5        UUU	U4$ ! , (       d  f       GN= f),Nr   r   r   T)exist_okz
config.ymlwF)default_flow_style	sort_keysz{}/train.log	log_ranks0)log_filerf  ra   rd   rg   ri   rl   r   r   )/EASTDBSASTRosettaCRNNSTARNetRAREr   CLSPGNetr   r   	TableAttnr   PSEr   SDMGR	LayoutXLMLayoutLM
LayoutLMv2PRENFCEr   r   ViTSTRABINetzDB++TableMasterr   r   GestaltSLANetr   CTr   r   r   	Telescoper   r   r   r   r   r   SLANeXtr   r   zxpu:{0}FLAGS_selected_xpusr   znpu:{0}FLAGS_selected_npuszmlu:{0}FLAGS_selected_mluszgcu:{0}FLAGS_selected_gcuszgpu:{}cpurO   distributeduse_visualdlzHYou are using VisualDL, the VisualDL is deprecated and removed in ppocr!	use_wandbwandbz{}/wandbsave_dirr(   z"train with paddle {} and device {}r;   )"r   r'   r   rL   r(   r_   r*   rE   r   rH   rF   r  r4   dumprS   rU   r   r   getenvr  ParallelEnvdev_idr~   rn   
set_deviceget_world_sizewarningrT   r   rI  r   r   r   __version__)is_trainFLAGSr   r(   profile_dicr   frh  rf  r  ra   rd   rg   ri   rl   algrr   loggersr!  r  wandb_writer_pathwandb_paramss                         r#   
preprocessr    sq   L##%E--&F&)),F%u'='=>K&.F)*:;
NT2"'',,~|<cBaIId6lA%5Q C!((8x $$[#6I?F X""9e4GX""9e4GX""9e4GX""9e4GX""9e4G

 
-C 0 0 0 0d !!")),A1"EF	!!")),A1"EF	!!")),A1"EF	!!")),A1"EF?F!1!1!3!:!:;E7W=v&F&*&9&9&;q&@F8]#G))fX.>~.N 	
 
vh''F8,<[,I	F	(#$45&--h7f!'?L6LZ23 ?<??
z"
vW%


KK4;;F<N<NPVWX66:--c CBs   6!N;;
O
)FFFF)F)3
__future__r   r   r   rE   r  rp   r   r4   r   r	  rn   paddle.distributedr  r  r   cv2r   npcopyargparser   r   ppocr.utils.statsr	   ppocr.utils.save_loadr
   ppocr.utils.utilityr   r   ppocr.utils.loggingr   ppocr.utils.loggersr   r   ppocr.utilsr   
ppocr.datar   ppocr.utils.export_modelr   r   rL   r_   r~   r   r   r  r]  r`  r  r;   r%   r#   <module>r     s    '  % 	 	 
      !  
   @ + , 8 * 4   ' + >
<+\D '~L m`.:}.r%   