29 lines
706 B
Python
29 lines
706 B
Python
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
|
|
|
|
from ultralytics.utils import SETTINGS
|
|
|
|
try:
|
|
assert SETTINGS["raytune"] is True # verify integration is enabled
|
|
import ray
|
|
from ray import tune
|
|
from ray.air import session
|
|
|
|
except (ImportError, AssertionError):
|
|
tune = None
|
|
|
|
|
|
def on_fit_epoch_end(trainer):
|
|
"""Sends training metrics to Ray Tune at end of each epoch."""
|
|
if ray.train._internal.session.get_session(): # check if Ray Tune session is active
|
|
metrics = trainer.metrics
|
|
session.report({**metrics, **{"epoch": trainer.epoch + 1}})
|
|
|
|
|
|
callbacks = (
|
|
{
|
|
"on_fit_epoch_end": on_fit_epoch_end,
|
|
}
|
|
if tune
|
|
else {}
|
|
)
|