
    FPh                         d dl mZmZmZmZ 	 d dlmZ erJ ed   du sJ daddZd Zd Zd	 Zd
 Zd ZereeeedZyi Zy# ee	e
f$ r dZY ,w xY w)    )LOGGERSETTINGSTESTS_RUNNINGcolorstr)SummaryWritertensorboardTNc                 p    t         r0| j                         D ]  \  }}t         j                  |||        yy)z"Logs scalar values to TensorBoard.N)WRITERitems
add_scalar)scalarsstepkvs       rC:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\ultralytics/utils/callbacks/tensorboard.py_log_scalarsr      s0    MMODAqaD) $     c                 n   	 ddl }ddlm}m} | j                  j
                  }t        |t              r||fn|}t        | j                  j                               }|j                  ddg||j                  |j                        }|j                         5  |j                  dt                t"        j%                  |j&                  j)                   || j                        |d	
      g        ddd       y# 1 sw Y   yxY w# t*        $ r"}t-        j.                  d|        Y d}~yd}~ww xY w)zLog model graph to TensorBoard.r   N)de_paralleltorch      )devicedtypeignore)categoryF)strictu7   WARNING ⚠️ TensorBoard graph visualization failure )warningsultralytics.utils.torch_utilsr   r   argsimgsz
isinstanceintnextmodel
parameterszerosr   r   catch_warningssimplefilterUserWarningr
   	add_graphjittrace	Exceptionr   warning)trainerr   r   r   r!   pimes           r   _log_tensorboard_graphr4      s    VD""",UC"8e))+,[[!Q[H$$&!!([!AUYY__[-GTY_Z\^_ '&&  VPQRPSTUUVs7   BD	 AC=4D	 =DD	 D	 		D4D//D4c                    t         rP	 t        t        | j                              at	        d      }t        j                  | d| j                   d       yy# t        $ r"}t        j                  d|        Y d}~yd}~ww xY w)z2Initialize TensorBoard logging with SummaryWriter.zTensorBoard: z!Start with 'tensorboard --logdir z!', view at http://localhost:6006/uL   WARNING ⚠️ TensorBoard not initialized correctly, not logging this run. N)	r   strsave_dirr
   r   r   infor.   r/   )r0   prefixr3   s      r   on_pretrain_routine_startr:   +   s~    	o"3w'7'7#89Fo.FKK6("CGDTDTCUUvwx   	oNNijkilmnn	os   AA 	B!A>>Bc                 (    t         rt        |        yy)zLog TensorBoard graph.N)r
   r4   r0   s    r   on_train_startr=   7   s    w' r   c                 l    t        | j                  | j                  d      | j                  dz          y)z6Logs scalar statistics at the end of a training batch.train)r9   r   N)r   label_loss_itemstlossepochr<   s    r   on_batch_endrC   =   s*    ))'--)H'--Z[J[\r   c                 J    t        | j                  | j                  dz          y)z,Logs epoch metrics at end of training epoch.r   N)r   metricsrB   r<   s    r   on_fit_epoch_endrF   B   s    '--!"34r   )r:   r=   rF   rC   )r   )ultralytics.utilsr   r   r   r   torch.utils.tensorboardr   r
   ImportErrorAssertionError	TypeErrorr   r4   r:   r=   rC   rF   	callbacks r   r   <module>rN      s    H G
5M"d***F*V$	o(]
5 &3 ";$( 	"	 9;	 
u 	^Y/ Ms   A 
AA