Yolo Vision Shenzhen
Shenzhen
Jetzt beitreten
Glossar

Callback

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.

Die Rolle von Callbacks im maschinellen Lernen

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 .

Häufige Anwendungen und Beispiele aus der Praxis

Callbacks sind vielseitig einsetzbar und können für eine Vielzahl von Aufgaben während der Modellüberwachung und Optimierung

  • Frühes Beenden: Eine der häufigsten Anwendungen ist das frühes Beenden. Dieser Callback überwacht eine bestimmte Metrik, wie z. B. Validierungsdaten Verlust. Wenn der Verlust für eine festgelegte Anzahl von Epochen nicht mehr abnimmt, stoppt der Callback das Training. Dies verhindert Überanpassungund stellt sicher, dass das Modell gut auf neue Daten generalisiert, anstatt die Trainingsdaten.
  • Modell-Checkpointing: Bei langen Trainingsläufen können Hardwareausfälle katastrophale Folgen haben. Ein Checkpointing- Callback speichert die Modellgewichte in regelmäßigen Abständen (z. B. in jeder Epoche) oder nur dann, wenn das Modell eine neue „Bestleistung” bei Metriken wie der Genauigkeit oder mittlere durchschnittliche Präzision (mAP)erreicht. So stellen Sie sicher, dass Sie immer eine gespeicherte Version des leistungsstärksten Modells haben.
  • Lernratenplanung: Die Lernrate steuert, wie stark sich das Modell bei jeder Aktualisierung der Modellgewichte als Reaktion auf den geschätzten Fehler ändert. Ein Callback kann diese Rate dynamisch anpassen und sie bei Lernplateaus reduzieren, um das Modell bei der Konvergenz zu einer optimalen Lösung zu unterstützen. Diese Technik wird oft als Lernratenabfallbezeichnet wird.
  • Protokollierung und Visualisierung: Callbacks werden häufig für die Integration mit Experimentverfolgungstools . Sie streamen Metriken an Dashboards wie TensorBoard oder MLflow, sodass Datenwissenschaftler Verlustfunktionen visualisieren können Verlustfunktionen und Leistungsdiagramme in Echtzeit visualisieren können.

Implementierung von Callbacks mit Ultralytics YOLO

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)

Callbacks vs. Hooks

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.

Weitere Lektüre und Ressourcen

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.

Werden Sie Mitglied der Ultralytics

Gestalten Sie die Zukunft der KI mit. Vernetzen Sie sich, arbeiten Sie zusammen und wachsen Sie mit globalen Innovatoren

Jetzt beitreten