
    hhQ              
           d dl Z d dlmZ d dlmZmZmZmZ d dlmZm	Z	m
Z
 d Zd Zd Zd Zd	 Zd
 Zd Zd Zd Ze
d   du reeeeeeeeed	Zyi Zy)    N)time)HUB_WEB_ROOTPREFIXHUBTrainingSessionevents)LOGGERRANKSETTINGSc                     t         dv r]t        d   du rQt        d   rG| j                  :t        j                  | j
                  j                  | j
                        | _        yyyyy)zDCreate a remote Ultralytics HUB session to log local model training.>   r   hubTapi_keyN)r	   r
   hub_sessionr   create_sessionargsmodeltrainers    ]/var/www/html/dev/engine/venv/lib/python3.12/site-packages/ultralytics/utils/callbacks/hub.pyon_pretrain_routine_startr   
   s[    w8E?d2x	7JwObObOj0??@R@RT[T`T`a Pk7J2    c                 X    t        | dd      x}rt               t               d|_        yy)zBInitialize timers for upload rate limiting before training begins.r   N)metricsckpt)getattrr   timersr   sessions     r   on_pretrain_routine_endr      s+    '=$77w7%)VTV< 8r   c                 *   t        | dd      x}ri | j                  | j                  d      | j                  }| j                  dk(  rddlm} i | ||       }t        j                  |      |j                  | j                  <   |j                  r%|j                  j                  |j                         t               |j                  d   z
  |j                  d   kD  r/|j                          t               |j                  d<   i |_	        yyy)zMUpload training progress metrics to Ultralytics HUB at the end of each epoch.r   Ntrain)prefixr   )model_info_for_loggersr   )r   label_loss_itemstlossr   epochultralytics.utils.torch_utilsr#   jsondumpsmetrics_queuemetrics_upload_failed_queueupdater   r   rate_limitsupload_metrics)r   r   	all_plotsr#   s       r   on_fit_epoch_endr0      s    '=$77w7
&&w}}W&E
oo
	 ==ALH9H(>w(GHI/3zz)/Dgmm, ..!!(()L)LM6GNN9--0C0CI0NN""$(,GNN9%$&G! O# 8r   c                    t        | dd      x}r| j                  | j                  k(  }t               |j                  d   z
  |j
                  d   kD  rxt        j                  t         dt         d|j                  j                          |j                  | j                  | j                  |       t               |j                  d<   yyy)z?Upload model checkpoints to Ultralytics HUB with rate limiting.r   Nr   zUploading checkpoint z/models/)r   best_fitnessfitnessr   r   r-   r   infor   r   r   idupload_modelr&   last)r   r   is_bests      r   on_model_saver9   0   s    '=$77w7&&'//96GNN6**W-@-@-HHKK6("7~XgmmN^N^M_`a  gF%)VGNN6" I 8r   c                 P   t        | dd      x}rt        j                  t         d       |j	                  | j
                  | j                  | j                  j                  dd      d       d|_	        t        j                  t         d	t         d
|j                   d       yy)zIUpload final model and metrics to Ultralytics HUB at the end of training.r   NzSyncing final model...zmetrics/mAP50-95(B)r   T)mapfinalFu	   Done ✅
zView model at u    🚀)r   r   r4   r   r6   r&   bestr   getalive	model_urlr   s     r   on_train_endrA   ;   s    '=$77w7vh456MMLL##$91=	 	 	
 vhjw?P?P>QQVWX 8r   c                 D    t        | j                  | j                         y)zRun events on train start.Nr   r   devicer   s    r   on_train_startrE   J   s    
7<<(r   c                 ^    | j                   s!t        | j                  | j                         yy)zRun events on validation start.N)trainingr   r   rD   )	validators    r   on_val_startrI   O   s$    y~~y//0 r   c                 D    t        | j                  | j                         y)zRun events on predict start.NrC   )	predictors    r   on_predict_startrL   U   s    
9>>9++,r   c                 D    t        | j                  | j                         y)zRun events on export start.NrC   )exporters    r   on_export_startrO   Z   s    
8==(//*r   r   T)	r   r   r0   r9   rA   rE   rI   rL   rO   )r(   r   ultralytics.hubr   r   r   r   ultralytics.utilsr   r	   r
   r   r   r0   r9   rA   rE   rI   rL   rO   	callbacks r   r   <module>rT      s      L L 4 4b='2,Y)
1-
+" $ &?#:,&$($,*
 
 
 
r   