
    Αi                         S SK r S SKrS SKrS SKJrJrJrJrJr  SSK	J
r
Jr              SS jr " S S\5      r " S S	\5      r " S
 S\5      r " S S\5      r " S S\5      rg)    N)CallbackCallbackListLRSchedulerModelCheckpointProgBarLogger   )CollectionNamesget_collectionc                    U =(       d    / n[        U[        [        45      (       a  UOU/n[        S U 5       5      (       d  U(       a  [	        XVS9/UQn[        S U 5       5      (       d  [        5       /UQn[        S U 5       5      (       d  / UQ[        Xx5      Pn[        S U 5       5      (       d  US:X  a  / UQ[        SS9Pn[        S	 U 5       5      (       d  / UQ[        5       Pn[        U5       H  u  p[        U[        5      (       a"  [	        UR                  UR                  5      X'   [        U[        5      (       a"  [        UR                  UR                  5      X'   [        U[         5      (       d  M  [        UR"                  UR$                  5      X'   M     ['        U5      nUR)                  U5        US
:w  a  U	=(       d    / O/ n	UUUUU	U
S.nUR+                  U5        U$ )Nc              3   B   #    U  H  n[        U[        5      v   M     g 7fN)
isinstancer   .0ks     q/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/paddle/distributed/auto_parallel/static/callbacks.py	<genexpr>#config_callbacks.<locals>.<genexpr>/   s     :Tz!]++T   )verbosec              3   B   #    U  H  n[        U[        5      v   M     g 7fr   )r   r   r   s     r   r   r   2   s     84az![))4r   c              3   B   #    U  H  n[        U[        5      v   M     g 7fr   )r   r   r   s     r   r   r   5   s     <t!z!_--tr   c              3   B   #    U  H  n[        U[        5      v   M     g 7fr   )r   Profilerr   s     r   r   r   8   s     51z!X&&r      T)
timer_onlyc              3   B   #    U  H  n[        U[        5      v   M     g 7fr   )r   Historyr   s     r   r   r   ;   s     4t!z!W%%tr   test)
batch_sizeepochsstepsr   metricsacc_step)r   listtupleanyProgBarLoggerAutoLRSchedulerAutoModelCheckpointAutor   r   	enumerater   log_freqr   r   by_stepby_epochr   	save_freqsave_dirr   	set_model
set_params)	callbacksenginer    r!   r"   r,   r   r/   r0   r#   r$   modecbksir   cbk_listparamss                    r   config_callbacksr:      s    ?DdT5M224D:T:::w!(<DtD84888!)D)<t<<<@@*9?@5555'Q,11x4014t444!!wy!$a'''

AII>DGa%%%aii<DGa)))!++qzzBDG   D!Hv#v~gm2G F O    c                   B   ^  \ rS rSrSU 4S jjrS rS rSS jrSrU =r	$ )	r(   U   c                 $   > [         TU ]  X5        g r   super__init__)selfr,   r   	__class__s      r   rA   ProgBarLoggerAuto.__init__V   s    +r;   c                     g)NT rB   s    r   	_is_printProgBarLoggerAuto._is_printY   s    r;   c                    / n[        X S35      n[        X S35      n[        X S35      nU H  nXq;   d  M
  UR                  XqU   45        M!     SU;   a  UR                  SUS   45        UR                  S0 5      n[        [        R
                  5      n	U	 H6  u  pU
=(       d    UR                  nXx;   d  M!  UR                  XxU   45        M8     UR                  S0 5      nU H  nUR                  X|U   45        M     U R                  S:X  a  [        U SU S	35      (       a  [        U SU S	35      nUS
   S:  a  US
   OSnUS   S:  a  US   OSnUR                  SSUS   U-  -  45        UR                  SSUS   U-  -  45        UR                  SSXS   US   -   -  -  45        SUS
'   SUS'   SUS'   SUS'   UR                  Xc5        g )N_metrics_progbar_steplrfetchesoutputsr   __timercountr   g      ?samplesavg_reader_costz%.5f sec	data_timeavg_batch_cost
batch_timeipsz%.5f samples/secg        )
getattrappendgetr
   r	   LOGGINGnamer   hasattrupdate)rB   logsr5   valuesr#   progbarr"   r   fetches_logscollect_loggingr^   varout_logstimercntrT   s                   r   _updatesProgBarLoggerAuto._updates\   s   $& 12$& 12en-Ayqq'l+  4<MM4d,-xx	2.()@)@A(ID A qq/23 )
 88Ir*AMM1qk*+  <<14&/?!@!@DAdV6"23E$)'NQ$6%.CC*/	*:Q*>eI&CGMM"J%2Ds2J$KL MM!:|1Ds1J#KL MM&"4u\7J"JKM E'N E)!$E+"%E,u%r;   c                    U=(       d    0 nU =R                   S-  sl         U R                  S   nU =R                  U-  sl        U R                  S==   [        R                  " 5       U R                  S   -
  -  ss'   U R                  S==   S-  ss'   U R                  S   nU R                  S==   U-  ss'   U R                  5       (       aV  U R                   U R                  -  S:X  a9  U R                  b  U R                   U R                  :  a  U R                  US5        [        R                  " 5       U R                  S	'   g )
N   r    rX   batch_data_end_timerS   rT   r   evalbatch_start_time)		eval_stepr9   evaled_samples_eval_timertimerH   r,   
eval_stepsrj   )rB   stepra   rT   s       r   on_eval_batch_end#ProgBarLoggerAuto.on_eval_batch_end   s   zr!++l+w&&IIK$**+@AA	
& 	!Q&!++l+#w.#>> >! C&$..4??*JdF+/3yy{+,r;   rF   )rm   r   r   )
__name__
__module____qualname____firstlineno__rA   rH   rj   rw   __static_attributes____classcell__rC   s   @r   r(   r(   U   s    ,.&`; ;r;   r(   c                   @   ^  \ rS rSrSU 4S jjrSS jrSS jrSrU =r$ )	r)      c                 $   > [         TU ]  X5        g r   r?   )rB   r-   r.   rC   s      r   rA   LRSchedulerAuto.__init__   s    +r;   c                 F    U R                   S   U l        Xl        SU l        g )Nr$   r   )r9   r$   epoch
train_steprB   r   ra   s      r   on_epoch_beginLRSchedulerAuto.on_epoch_begin   s    J/
r;   c                    U =R                   S-  sl         U R                  (       a  U R                   U R                  -  S:X  a  U R                  R                  (       a  [        U R                  R                  S5      (       a  [        U R                  R                  R                  [        R                  R                  R                  5      (       a/  U R                  R                  R                  R                  5         g g g g g g )Nrm   r   _learning_rate)r   r-   r$   model	optimizerr_   r   r   paddlerN   r   rv   rB   rv   ra   s      r   on_train_batch_end"LRSchedulerAuto.on_train_batch_end   s    1<<DOOdmm;q@

$$DJJ002BCCJJ((77$$''33 
 

$$3388: D % A<r;   )r$   r   r   )TFNNr   )	ry   rz   r{   r|   rA   r   r   r}   r~   r   s   @r   r)   r)      s    ,
; ;r;   r)   c                   .    \ rS rSrS rSS jrSS jrSrg)r      c                     0 U l         g r   )historyrG   s    r   rA   History.__init__   s	    r;   Nc                     / U l         g r   )r   rB   ra   s     r   on_train_beginHistory.on_train_begin   s	    
r;   c                     U=(       d    0 nU R                   R                  U5        UR                  5        H0  u  p4U R                  R	                  U/ 5      R                  U5        M2     X R
                  l        g r   )r   r[   itemsr   
setdefaultr   )rB   r   ra   r   vs        r   on_epoch_endHistory.on_epoch_end   sZ    zr

% JJLDALL##Ar*11!4 ! "

r;   )r   r   r   )ry   rz   r{   r|   rA   r   r   r}   rF   r;   r   r   r      s    "r;   r   c                   B    \ rS rSrS rS	S jrS
S jrS
S jrS
S jrSr	g)r      c                 N    [         R                  R                  " U0 UD6U l        g r   )r   profilerr   prof)rB   argskwargss      r   rA   Profiler.__init__   s    OO,,d=f=	r;   Nc                 n    Xl         SU l        U R                  S   U l        U R                  S   U l        g )Nr   r    r"   )r   r   r9   r    r"   r   s      r   r   Profiler.on_epoch_begin   s.    
++l3[[)
r;   c                 8    U R                   R                  5         g r   )r   startr   s     r   r   Profiler.on_train_begin   s    		r;   c           	          U =R                   S-  sl         U R                  R                  U R                  S9  [	        SR                  U R                   U R                  R                  SS95      5        g )Nrm   )num_samplesz
step {}:{}rT   )unit)r   r   rv   r    printformat	step_infor   s      r   r   Profiler.on_train_batch_end   sW    1		4??3!4!4)!4!D	
r;   c                 l    U R                   R                  5         U R                   R                  5         g r   )r   stopsummaryr   s     r   on_train_endProfiler.on_train_end   s     				r;   )r    r   r   r"   r   r   r   )
ry   rz   r{   r|   rA   r   r   r   r   r}   rF   r;   r   r   r      s    >*
r;   r   c                   B   ^  \ rS rSrU 4S jrS rSS jrSS jrSrU =r	$ )r*      c                 &   > [         TU ]  " U0 UD6  g r   r?   )rB   r   r   rC   s      r   rA   ModelCheckpointAuto.__init__   s    $)&)r;   c                 @    U R                   =(       a    U R                  $ r   )r   r0   rG   s    r   _is_saveModelCheckpointAuto._is_save   s    zz+dmm+r;   c                     U R                  5       (       ay  U R                  S-   U R                  -  S:X  aX  U R                   SU 3n[	        S[
        R                  R                  U5       35        U R                  R                  U5        g g g )Nrm   r   z/epochsave checkpoint at )
r   r   r/   r0   r   ospathabspathr   save)rB   r   ra   r   s       r   r    ModelCheckpointAuto.on_epoch_end   so    ==??

Q$..@AEmm_F5'2D'(='>?@JJOOD!  F?r;   c                     U R                  5       (       aV  U R                   S3n[        S[        R                  R                  U5       35        U R                  R                  U5        g g )Nz/finalr   )r   r0   r   r   r   r   r   r   )rB   ra   r   s      r   r    ModelCheckpointAuto.on_train_end   sP    ==??mm_F+D'(='>?@JJOOD! r;   rF   r   )
ry   rz   r{   r|   rA   r   r   r   r}   r~   r   s   @r   r*   r*      s    *,"" "r;   r*   )NNNNNr   r   rm   NNrm   train)r   rt   r   paddle.hapi.callbacksr   r   r   r   r   	interfacer	   r
   r:   r(   r)   r   r   r*   rF   r;   r   <module>r      s    
    8 
	4nH; H;V;k ;0"h " x 6"/ "r;   