o
    Wñh  ã                	   @   s|   d dl mZ zed du sJ ‚d dlZd dlmZ d dlmZ W n eefy-   dZY nw dd„ Zer:deiZ	dS i Z	dS )	é    )ÚSETTINGSÚraytuneTN)Útune)Úsessionc                 C   s8   t jjj ¡ r| j}t i |¥d| jd i¥¡ dS dS )az  
    Reports training metrics to Ray Tune at epoch end when a Ray session is active.

    Captures metrics from the trainer object and sends them to Ray Tune with the current epoch number,
    enabling hyperparameter tuning optimization. Only executes when within an active Ray Tune session.

    Args:
        trainer (ultralytics.engine.trainer.BaseTrainer): The Ultralytics trainer object containing metrics and epochs.

    Examples:
        >>> # Called automatically by the Ultralytics training loop
        >>> on_fit_epoch_end(trainer)

    References:
        Ray Tune docs: https://docs.ray.io/en/latest/tune/index.html
    Úepoché   N)ÚrayÚtrainÚ	_internalr   Úget_sessionÚmetricsÚreportr   )Útrainerr   © r   úW/var/www/vscode/kcb/lib/python3.10/site-packages/ultralytics/utils/callbacks/raytune.pyÚon_fit_epoch_end   s    þr   )
Úultralytics.utilsr   r   r   Úray.airr   ÚImportErrorÚAssertionErrorr   Ú	callbacksr   r   r   r   Ú<module>   s"   ÿýÿÿû