Перейти к содержимому

Обратные вызовы

Обратные вызовы

Ultralytics Фреймворк поддерживает обратные вызовы в качестве точек входа на стратегических этапах режимов train, val, export и predict. Каждый обратный вызов принимает Trainer, Validator, или Predictor объект в зависимости от типа операции. Все свойства этих объектов можно найти в разделе Reference в документации.



Смотри: Mastering Ultralytics YOLOv8 : Callbacks

Примеры

Возвращение дополнительной информации с помощью предсказания

В этом примере мы хотим вернуть оригинальный кадр с каждым объектом результата. Вот как мы можем это сделать

from ultralytics import YOLO


def on_predict_batch_end(predictor):
    """Handle prediction batch end by combining results with corresponding frames; modifies predictor results."""
    _, image, _, _ = predictor.batch

    # Ensure that image is a list
    image = image if isinstance(image, list) else [image]

    # Combine the prediction results with the corresponding frames
    predictor.results = zip(predictor.results, image)


# Create a YOLO model instance
model = YOLO(f'yolov8n.pt')

# Add the custom callback to the model
model.add_callback("on_predict_batch_end", on_predict_batch_end)

# Iterate through the results and frames
for (result, frame) in model.predict():  # or model.track()
    pass

Все обратные вызовы

Здесь перечислены все поддерживаемые обратные вызовы. Дополнительные подробности смотри в исходном коде callbacks.

Обратные вызовы тренера

Обратный звонок Описание
on_pretrain_routine_start Срабатывает в начале предтренировочной рутины
on_pretrain_routine_end Срабатывает в конце предтренировочной рутины
on_train_start Срабатывает, когда начинается тренировка
on_train_epoch_start Срабатывает в начале каждой эпохи обучения
on_train_batch_start Срабатывает в начале каждой тренировочной партии
optimizer_step Срабатывает во время шага оптимизатора
on_before_zero_grad Срабатывает до того, как градиенты обнуляются
on_train_batch_end Срабатывает в конце каждой тренировочной партии
on_train_epoch_end Срабатывает в конце каждой эпохи обучения
on_fit_epoch_end Срабатывает в конце каждой эпохи подгонки
on_model_save Срабатывает, когда модель сохраняется
on_train_end Срабатывает, когда тренировочный процесс заканчивается
on_params_update Срабатывает при обновлении параметров модели
teardown Срабатывает, когда процесс тренировки завершается

Обратные вызовы валидатора

Обратный звонок Описание
on_val_start Срабатывает, когда начинается валидация
on_val_batch_start Срабатывает в начале каждой проверки
on_val_batch_end Срабатывает в конце каждой проверки
on_val_end Срабатывает, когда заканчивается проверка

Обратные вызовы предикторов

Обратный звонок Описание
on_predict_start Срабатывает, когда начинается процесс предсказания
on_predict_batch_start Срабатывает в начале каждой партии предсказаний
on_predict_postprocess_end Срабатывает в конце постпроцессинга предсказаний
on_predict_batch_end Срабатывает в конце каждой партии предсказаний
on_predict_end Срабатывает, когда процесс предсказания заканчивается

Обратные вызовы экспортера

Обратный звонок Описание
on_export_start Срабатывает, когда начинается процесс экспорта
on_export_end Срабатывает, когда заканчивается процесс экспорта


Создано 2023-11-12, Обновлено 2024-05-03
Авторы: glenn-jocher (4), RizwanMunawar (1), Laughing-q (1)

Комментарии