Entdecken Sie, wie Callbacks das Ultralytics Training optimieren. Lernen Sie, wie Sie Early Stopping, Checkpointing und benutzerdefiniertes Logging implementieren, um Ihre KI-Workflows zu verbessern.
Im Bereich der Softwareentwicklung und künstlicher Intelligenz (KI)ist ein Callback ein Stück ausführbarer Code, das als Argument an einen anderen Code übergeben wird, der dann das Argument zu einem bestimmten Zeitpunkt ausführen (zurückrufen) soll. Im spezifischen Kontext des Deep-Learning-Frameworks (DL) sind Callbacks unverzichtbare Werkzeuge, mit denen Entwickler das Verhalten des Modelltrainingsschleife Schleife anpassen können, ohne den Kern des Trainingscodes selbst zu verändern. Sie fungieren als automatisierte Auslöser, die in verschiedenen Phasen des Trainingsprozesses bestimmte Aktionen ausführen, beispielsweise zu Beginn oder am Ende einer Epoche, eines Trainings-Batches oder der gesamten Trainingseinheit.
Training eines komplexen neuronales Netzwerk kann Stunden oder sogar Tage dauern. Ohne Callbacks ist der Trainingsprozess im Wesentlichen eine „Black Box”, die bis zum Abschluss läuft und oft manuelle Überwachung erfordert. Callbacks ermöglichen Beobachtbarkeit und Kontrolle, sodass sich das System auf der Grundlage von Echtzeit-Leistungskennzahlen selbst regulieren kann.
Bei der Verwendung von High-Level-Bibliotheken wie PyTorch oder TensorFlowbieten Callbacks eine Möglichkeit, Logik in den Optimierungsalgorithmus. Wenn ein Modell beispielsweise gut lernt, kann ein Callback den aktuellen Zustand speichern; wenn es nicht mehr lernt, kann ein Callback den Prozess anhalten, um Ressourcen zu sparen. Dies macht das Workflow des maschinellen Lernens (ML) effizienter und robuster .
Callbacks sind vielseitig einsetzbar und können für eine Vielzahl von Aufgaben während der Modellüberwachung und Optimierung
Die Ultralytics unterstützt ein robustes Callback-System, mit dem Benutzer während des Trainings von Modellen wie YOLO26 YOLO26. Dies ist besonders nützlich für Benutzer, die Workflows auf der Ultralytics , die eine benutzerdefinierte Protokollierung oder Steuerungslogik benötigen.
Nachfolgend finden Sie ein kurzes Beispiel dafür, wie Sie einen benutzerdefinierten Callback definieren und registrieren können, der am Ende jeder Trainings-Epoche mithilfe der Python aus:
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)
Obwohl sie miteinander in Zusammenhang stehen, ist es hilfreich, Callbacks von Hookszu unterscheiden. In Frameworks wie PyTorch sind Hooks in der Regel Funktionen auf niedrigerer Ebene, die an bestimmte tensor Operationen oder neuronalen Netzwerkschichten gebunden sind, um Gradienten und Ausgaben während des Vorwärts- oder Rückwärtsdurchlaufs zu überprüfen oder zu modifizieren. Im Gegensatz dazu sind Callbacks in der Regel Abstraktionen auf höherer Ebene, die mit der Trainingsschleife (Start, Ende, Stapelverarbeitung) und nicht mit dem mathematischen Berechnungsgraphen selbst verbunden sind.
Für diejenigen, die ihr Verständnis für die Optimierung von Trainingsabläufen vertiefen möchten, bietet sich die Auseinandersetzung mit der Hyperparameter-Tuning ein logischer nächster Schritt. Darüber hinaus ist es hilfreich, die zugrunde liegende Computer Vision (CV) Aufgaben wie die Objekterkennung und Instanzsegmentierung werden den Kontext liefern, warum eine präzise Trainingssteuerung über Callbacks notwendig ist. Für die unternehmensgerechte Verwaltung dieser Prozesse bietet die Ultralytics integrierte Lösungen, die viele dieser Callback-gesteuerten Vorgänge automatisieren.