
    Αi(                         S r SSKrSSKrSSKrSSKrSSKJr  \" \\R                  SS9r
SSKJrJrJrJrJrJr  SSKJr  SS	KJrJrJrJrJrJr  / r " S
 S5      r " S S5      rg)zDefinition of TrainerFactory.    N)
get_loggerz&%(asctime)s-%(levelname)s: %(message)s)fmt   )DownpourLiteDownpourSGDDownpourSGDOPTHeterSectionHogwildSection)Variable)DistMultiTrainerHeterPipelineTrainerHeterXpuTrainerMultiTrainerPipelineTrainerPSGPUTrainerc                   (    \ rS rSrSrS rSS jrSrg)TrainerFactory1   z
Create trainer and device worker.
If opt_info is not None, it will get configs from opt_info,
otherwise create MultiTrainer and Hogwild.
c                     g N selfs    [/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/paddle/base/trainer_factory.py__init__TrainerFactory.__init__8   s        Nc                 
   S nS nU(       d'  [        5       n[        5       nUR                  U5        U$ UR                  SS5      nUR                  SS5      n[	        5       U   " 5       n[	        5       U   " 5       nUGbp  UR                  S5      b  UR                  US   5        UR                  S5      b  UR                  US   5        UR                  S5      b  UR                  US   5        UR                  S5      b  UR                  US   5        UR                  S	5      b  UR                  US	   5        UR                  S
5      b2  [        UR                  S
5      5      S:w  a  UR                  US
   5        UR                  S5      b2  [        UR                  S5      5      S:w  a  UR                  US   5        UR                  S5      b  UR                  US   5        UR                  S5      b2  [        UR                  S5      5      S:w  a  UR                  US   5        UR                  S5      b  UR                  US   5        UR                  S5      b  UR!                  US   5        UR                  S5      b2  [        UR                  S5      5      S:w  a  UR#                  US   5        UR                  S5      b  UR%                  US   5        UR                  S5      b  UR'                  US   5        UR                  S5      b  UR)                  US   5        UR                  S5      b  UR+                  US   5        UR                  S5      b  UR-                  US   5        UR                  S5      b  UR/                  US   5        UR                  S5      b  UR1                  US   5        UR                  S5      b  UR3                  US   5        SU;   GaY  UR5                  US   5        UR5                  US   5        UR                  S5      b  UR7                  US   5        UR                  S5      b  UR9                  US   5        UR                  S5       b  UR;                  US   5        UR                  S5      b  UR=                  US   5        UR                  S5      b  UR?                  US   5        UR                  S 5      b  URA                  US    5        UR                  S!5      b  URC                  US!   5        UR                  S"5      b  URE                  US"   5        UR                  U5        U$ )#Ntrainerr   device_workerr
   trainers
trainer_id	dump_slotmpi_rankmpi_sizedump_fieldsr   dump_fields_pathdump_fields_modeuser_define_dump_filenamedump_file_numdump_converter
dump_paramworker_places
use_ps_gpuuse_gpu_graphis_dump_in_simple_modedump_num_decimalsenable_random_dumpdump_intervalrandom_with_lineid
fleet_descuse_cvmno_cvm%scale_sparse_gradient_with_batch_sizescale_datanormadjust_ins_weight
copy_tablecheck_nan_var_names
loss_names)#r   r
   _set_device_workergetglobals_set_trainers_set_trainer_id_set_dump_slot_set_mpi_rank_set_mpi_sizelen_set_dump_fields_set_dump_fields_path_set_dump_fields_mode_set_user_define_dump_filename_set_dump_file_num_set_dump_converter_set_dump_param_set_worker_places_set_use_ps_gpu_set_use_gpu_graph_set_is_dump_in_simple_mode_set_dump_num_decimals_set_enable_random_dump_set_dump_interval_set_random_with_lineid_set_fleet_desc_set_use_cvm_set_no_cvm&_set_scale_sparse_grad_with_batch_size_set_scale_datanorm_set_adjust_ins_weight_set_copy_table_config_set_check_nan_var_names_set_loss_names)r   opt_infor    r!   trainer_classdevice_worker_classs         r   _create_trainerTrainerFactory._create_trainer;   s   "nG#IM&&}5J G %LLNCM"*,,	"Ji.0G#I&9:<M #<<
+7))(:*>?<<-9++H\,BC<<,8**8K+@A<<
+7))(:*>?<<
+7))(:*>?LL/;HLL78A=,,Xm-DELL!34@HLL);<=B11(;M2NO<< 23?11(;M2NOLL!<=IHLL)DEF!K:: !<= <<0<..x/HI<< 01=//9I0JKLL.:HLL671<++H\,BC<<0<..x/HI<<-9++H\,BC<<0<..x/HI<< 89E77 !9: << 34@22 !45 << 45A33 !56 <<0<..x/HI<< 45A33 !56 x'--h|.DE''(>?<<	*6(())<=<<)5''(:;LL!HI  BB !HI << 01=//9I0JK<< 34@22 !45 <<-9228L3IJ<< 56B44 !67 <<-9++H\,BC&&}5r   r   r   )__name__
__module____qualname____firstlineno____doc__r   rc   __static_attributes__r   r   r   r   r   1   s    lr   r   c                   0    \ rS rSrSrS rS rS rS rSr	g)	FetchHandlerMonitor   zB
Definition of FetchHandlerMonitor class,
it's for fetch handler.
c                     X l         [        R                  " U R                  XR                   4S9U l        [        R
                  " 5       U l        SU l        g )N)targetargsF)fetch_instance	threadingThreadhandler_launch_funcfetch_threadLockrunning_lockrunning)r   scopehandlers      r   r   FetchHandlerMonitor.__init__   sG    %%,,++5:M:M2N
 &NN,r   c                    UnUR                   n0 nUR                   H_  n[        UR                  U   [        5      (       a  XeUR                  U   R                  '   MB  [
        R                  SU S35        XeS'   Ma     Sn U R                  R                  5         U R                  SL a  g Xt:  a  [        R                  " S5        US-  nOSn0 nU H7  nUR                  U5      n	XU'   U	b  M  [
        R                  XV    S35        M9     0 n
U H  nXV   nX   c  S X'   M  X   R                  5       X'   X   R                  5       n[        U5      S:  a  [!        S5      eX   R#                  5       (       a  [$        R&                  " X   5      X'   M  S X'   M     UR)                  U
5        U R                  R+                  5         GMK  )	Nzthe value of z is not a VariablezNone.varr   Fr   z value currently not availablea  Some of your fetched tensors                                             hold LoD information.                                             They can not be completely cast                                             to Python ndarray. We can                                             not return DenseTensor itself directly,                                             please choose another targets)period_secsvar_dict
isinstancer   namelocal_loggerwarningrw   acquirerx   timesleepfind_var
get_tensorlodrG   RuntimeError_is_initializednparrayrz   release)r   ry   rz   rq   r}   var_name_to_keykeyelapsed_secs
fetch_dictvarres_dict	user_namer   s                r   rt   'FetchHandlerMonitor.handler_launch_func   s    $00!**C.11#6AAEH 7 7 < A AB$$}SE9K%LM.1
+ + %%'||u$)

1! 
*C..-C&)sO{$,,.344RS	 + %C / 4I!..2+ .8o.H.H.J+"-113C3x!|*K   *::<<.0hhx7J.K+.2++ &, &&x0%%'U r   c                     U R                   R                  5         SU l        U R                   R                  5         U R                  R                  S5        U R                  R                  5         g)z0
start monitor,
it will start a monitor thread.
TN)rw   r   rx   r   ru   	setDaemonstartr   s    r   r   FetchHandlerMonitor.start   sU    
 	!!#!!###D)!r   c                 z    U R                   R                  5         SU l        U R                   R                  5         g )NF)rw   r   rx   r   r   s    r   stopFetchHandlerMonitor.stop   s-    !!#!!#r   )rq   ru   rx   rw   N)
re   rf   rg   rh   ri   r   rt   r   r   rj   r   r   r   rl   rl      s    
5(n	"$r   rl   )ri   loggingrr   r   numpyr   paddle.base.log_helperr   re   INFOr   r!   r   r   r   r	   r
   r   	frameworkr   trainer_descr   r   r   r   r   r   __all__r   rl   r   r   r   <module>r      sh    $     -gll H     v vrS$ S$r   