Узнайте, как обратные вызовы оптимизируют обучение Ultralytics . Научитесь реализовывать раннее прекращение, контроль и настраиваемую регистрацию для улучшения ваших рабочих процессов искусственного интеллекта.
В области разработки программного обеспечения и искусственного интеллекта (ИИ), обратный вызов представляет собой часть исполняемого кода, которая передается в качестве аргумента другому коду, который затем должен выполнить (обратно вызвать) аргумент в заданное время. В конкретном контексте фреймворков глубокого обучения (DL) фреймворков глубокого обучения обратные вызовы являются важными инструментами, которые позволяют разработчикам настраивать поведение обучения модели цикла обучения модели без изменения самого основного кода обучения. Они действуют как автоматические триггеры, которые выполняют определенные действия на различных этапах процесса обучения, например, в начале или в конце эпохи, пакета обучения или всей сессии обучения.
Обучение сложной нейронной сети может занимать часы или даже дни. Без обратных вызовов процесс обучения представляет собой «черный ящик», который работает до завершения, часто требуя ручного контроля. Обратные вызовы обеспечивают наблюдаемость и контроль, позволяя системе саморегулироваться на основе показателей производительности в реальном времени
При использовании высокоуровневых библиотек, таких как PyTorch или TensorFlow, обратные вызовы предоставляют способ введения логики в алгоритм оптимизации. Например, если модель хорошо обучается, обратный вызов может сохранить текущее состояние; если она перестает обучаться, обратный вызов может остановить процесс, чтобы сэкономить ресурсы. Это делает рабочий процесс машинного обучения (ML) рабочий процесс машинного обучения
Обратные вызовы являются универсальными и могут использоваться для широкого спектра задач во время мониторинга и оптимизации
Ultralytics поддерживает надежную систему обратных вызовов, позволяющую пользователям подключаться к событиям во время обучения таких моделей, как YOLO26. Это особенно полезно для пользователей, управляющих рабочими процессами на Ultralytics , которым требуется настраиваемая логика регистрации или управления.
Ниже приведен краткий пример того, как определить и зарегистрировать пользовательский обратный вызов, который выводит сообщение в конце каждого эпоха обучения с помощью Python :
from ultralytics import YOLO
# Define a custom callback function
def on_train_epoch_end(trainer):
"""Callback function to execute at the end of each training epoch."""
print(f"Epoch {trainer.epoch + 1} complete. Current Fitness: {trainer.fitness}")
# Load the YOLO26 model (latest generation)
model = YOLO("yolo26n.pt")
# Register the custom callback to the model
model.add_callback("on_train_epoch_end", on_train_epoch_end)
# Train the model with the callback active
model.train(data="coco8.yaml", epochs=3)
Хотя это и связано, полезно отличать обратные вызовы от хуками. В таких фреймворках, как PyTorch, хуки — это, как правило, функции более низкого уровня, привязанные к конкретным tensor операциям или слоям нейронной сети для проверки или изменения градиентов и выходов во время прямого или обратного прохождения. В отличие от них, обратные вызовы — это обычно абстракции более высокого уровня, связанные с циклом обучения (начало, конец, пакетная обработка), а не с самим математическим вычислительным графом.
Для тех, кто хочет углубить свои знания об оптимизации рабочих процессов обучения, изучение настройка гиперпараметров является логичным следующим шагом. Кроме того, понимание основополагающих принципов задачам компьютерного зрения (CV) , таких как обнаружение объектов обнаружение объектов и сегментации экземпляров , позволяют понять, почему необходимо точное управление обучением с помощью обратных вызовов. Для управления этими процессами на уровне предприятия используется Ultralytics предлагает интегрированные решения, которые автоматизируют многие из этих управляемых обратными вызовами действий.