
    FPh              	           d dl Z d dlmZ d dlmZmZmZ d dlmZm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dZyi Zy)    N)time)HUB_WEB_ROOTPREFIXevents)LOGGERSETTINGSc                     t        | dd      }|rKt        j                  t         dt         d|j
                   d       t               t               d|_        yy)z6Logs info before starting timer for upload rate limit.hub_sessionNView model at /models/    🚀)metricsckpt)getattrr   infor   r   model_idr   timerstrainersessions     jC:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\ultralytics/utils/callbacks/hub.pyon_pretrain_routine_endr   
   sO    g}d3Gvhn\N(7CSCSBTTYZ[%)VTV<     c                    t        | dd      }|ri | j                  | j                  d      | j                  }| j                  dk(  rddlm} i | ||       }t        j                  |      |j                  | j                  <   t               |j                  d   z
  |j                  d   kD  r/|j                          t               |j                  d<   i |_	        yyy)z;Uploads training progress metrics 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_queuer   r   rate_limitsupload_metrics)r   r   	all_plotsr   s       r   on_fit_epoch_endr(      s    g}d3Gbw//g/NbRYRaRab	==ALH9H(>w(GHI/3zz)/Dgmm,6GNN9--0C0CI0NN""$(,GNN9%$&G! O r   c                    t        | dd      }|r| j                  | j                  k(  }t               |j                  d   z
  |j
                  d   kD  rnt        j                  t         dt         d|j                          |j                  | j                  | j                  |       t               |j                  d<   yyy)z8Saves checkpoints to Ultralytics HUB with rate limiting.r
   Nr   zUploading checkpoint r   )r   best_fitnessfitnessr   r   r%   r   r   r   r   r   upload_modelr    last)r   r   is_bests      r   on_model_saver/   #   s    g}d3G&&'//96GNN6**W-@-@-HHKK6("7~XgN^N^M_`a  gF%)VGNN6" I r   c           
      ^   t        | dd      }|rt        j                  t         d       |j	                  | j
                  | j                  | j                  j                  dd      d       d|_	        t        j                  t         d	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 ✅
r   r   r   )r   r   r   r   r,   r    bestr   getaliver   r   r   s     r   on_train_endr6   /   s    g}d3Gvh456W]]GLLgoo>Q>QRgij>kswxvhjhn\N(7CSCSBTTY[ 	\ r   c                 .    t        | j                         y)zRun events on train start.Nr   args)r   s    r   on_train_startr:   ;   s    
7<<r   c                 .    t        | j                         y)z Runs events on validation start.Nr8   )	validators    r   on_val_startr=   @       
9>>r   c                 .    t        | j                         y)zRun events on predict start.Nr8   )	predictors    r   on_predict_startrA   E   r>   r   c                 .    t        | j                         y)zRun events on export start.Nr8   )exporters    r   on_export_startrD   J   s    
8==r   hubT)r   r(   r/   r6   r:   r=   rA   rD   )r"   r   ultralytics.hub.utilsr   r   r   ultralytics.utilsr   r   r   r(   r/   r6   r:   r=   rA   rD   	callbacks r   r   <module>rJ      sz      > > .=' 	,	\


 ,4E?d+B  7(" $ (&(	 IK 
r   