
    Αi6                        S SK rS SKrS SKJr  S SKJrJr  S SKJ	r	  S SK
Jr  SrSrSrS	rS
rS
rSr " S S\5      rSS jrS r\S:X  a?  S SKr\R0                  " S5      r\R0                  " S5      r\" S\ S\ S35        \" 5         gg)    N)fleet)
DataLoaderDataset)ResNet)BottleneckBlockg?g?g-C6?      f   c                   &    \ rS rSrS rS rS rSrg)RandomDataset"   c                     Xl         g Nnum_samples)selfr   s     f/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/paddle/distributed/launch/plugins/test.py__init__RandomDataset.__init__#   s    &    c                     [         R                  R                  / SQ5      R                  S5      n[         R                  R                  S[        S-
  S5      R                  S5      nX#4$ )N)r      r   float32r   r	   )r	   int64)nprandomastyperandint	class_dim)r   idximagelabels       r   __getitem__RandomDataset.__getitem__&   sP    		  /66yA		!!!Y]D9@@I|r   c                     U R                   $ r   r   )r   s    r   __len__RandomDataset.__len__+   s    r   r   N)__name__
__module____qualname____firstlineno__r   r#   r&   __static_attributes__ r   r   r   r   "   s    '
 r   r   c                     [         R                  R                  [        [        [         R
                  R                  [        5      U S9nU$ )N)learning_ratemomentumweight_decay
parameters)paddle	optimizerMomentumbase_lrmomentum_rateregularizerL2Decayl2_decay)parameter_listr4   s     r   optimizer_settingr<   /   sB      ))''//9!	 * I r   c                     [         R                  " SS9  [        [        S[        S9n [        U R                  5       S9n[         R                  " U5      n[         R                  " U 5      n [        [        [        -  5      n[        U[        SSSS9n[        S5        [        [        5       GH  nU R!                  5         [#        U" 5       5       H  u  pVUu  pxSUl        U " U5      n	[&        R(                  R*                  R-                  XS	9n
[&        R.                  " U
S
9n[&        R0                  R3                  XSS9n[&        R0                  R3                  XSS9nUR5                  5         UR7                  5         U R9                  5         [        SU SU SUS SUS SUS 3
5        M     GM     [        S5        g )NT)is_collective   )num_classes)r;      )
batch_sizeshuffle	drop_lastnum_workerszDistributed training start...)inputr"   )xr	   )rF   r"   k   z[Epoch z, batch z] loss: z.5fz, acc1: z, acc5: zDistributed training completed)r   initr   r   r   r<   r2   distributed_optimizerdistributed_modelr   	batch_numrB   r   printrangeepochtrain	enumeratestop_gradientr3   nn
functionalcross_entropymeanmetricaccuracybackwardstepclear_gradients)resnetr4   datasettrain_loadereopbatch_iddataimgr"   outlossavg_lossacc_top1acc_top5s                 r   train_resnetri   9   s   	JJT"ORY?F!1B1B1DEI++I6I$$V,FI
23GL 

)*U|'7NHJC"&E+C99''55C5MD{{T*H}}--C-JH}}--C-JHNN""$#hxj#hxX[n\demnqdrs 8 * 

*+r   __main__PADDLE_NNODESPADDLE_LOCAL_SIZEz"Prepare distributed training with z nodes z cardsr   )numpyr   r3   paddle.distributedr   	paddle.ior   r   paddle.vision.modelsr   paddle.vision.models.resnetr   r6   r7   r:   rP   rM   rB   r   r   r<   ri   r(   osgetenvnnodescnrN   r-   r   r   <module>rv      s      $ ) ' 7
		
	
 G 
 ',T zYY'F	&	'B	.vhgbT
HIN r   