Ultralytics YOLO27: Trag dich in die Warteliste ein.
YOLO lizenzieren
Zurück zum Ultralytics-Glossar

Callback

Ein Callback ist eine Funktion, die eine Trainingsschleife bei festgelegten Ereignissen aufruft, etwa am Ende jeder Epoche, um frühzeitiges Beenden, Prüfpunkte oder Protokollierung hinzuzufügen.

Ein Callback ist eine Funktion, die an einen anderen Codeabschnitt übergeben wird und von diesem bei einem bestimmten Ereignis aufgerufen wird. Ereignisbehandlungsroutinen in Benutzeroberflächen, Abschlussfunktionen in asynchronem Code und die Vergleichsfunktion einer Sortierroutine sind allesamt Callbacks. In Frameworks für Deep Learning sind die Ereignisse bestimmte Punkte in der Trainingsschleife, etwa der Trainingsbeginn, das Ende jedes Batches oder jeder Epoche sowie der Abschluss der Validierung. Für ein Ereignis registrierte Callbacks werden an dieser Stelle mit Zugriff auf den Status des Trainers ausgeführt. So können Nutzer vorzeitigen Abbruch gegen Überanpassung, Checkpoints, Lernraten-Zeitpläne oder Protokollierung hinzufügen, ohne die Schleife selbst zu bearbeiten.

Wie Callbacks in das Training eingreifen#

Ein Framework verwaltet für jedes benannte Ereignis eine Liste von Callbacks und ruft jeden davon auf, wenn die Schleife das Ereignis erreicht. Dabei wird das Trainer- oder Modellobjekt übergeben, sodass ein Callback Metriken auslesen und Einstellungen ändern kann. Keras verwaltet sie im Modul keras.callbacks, PyTorch Lightning in Unterklassen von Callback und Hugging Face Transformers in TrainerCallback. Die Methodennamen unterscheiden sich je nach Bibliothek, die Ereignisse folgen jedoch derselben Schleife:

Da Callbacks innerhalb der Schleife ausgeführt werden, können sie diese auch verändern: Ein Callback, der eine Stoppmarkierung setzt, beendet das Training nach der aktuellen Epoche; ein Callback, der den Optimierer verändert, wirkt sich auf jeden folgenden Schritt aus. Callbacks für dasselbe Ereignis werden in der Reihenfolge ihrer Registrierung ausgeführt. Da Callbacks auf Batch-Ebene Tausende Male pro Epoche laufen, gehören langsame Aufgaben wie das Hochladen von Dateien zu den Ereignissen auf Epochenebene. Beim verteilten Training führt jeder Prozess eine eigene Kopie der Schleife und ihrer Callbacks aus. Daher werden Protokollierungs- und Checkpoint-Callbacks üblicherweise nur im Hauptprozess, Rang 0, ausgeführt, damit nicht mehrere GPUs dieselbe Datei schreiben.

Gängige Trainings-Callbacks#

  • Vorzeitiger Abbruch: Beendet das Training, wenn sich eine Validierungsmetrik während einer festgelegten Anzahl von Epochen, der sogenannten Geduld, nicht verbessert hat. Das begrenzt Überanpassung und spart Rechenleistung. Keras' EarlyStopping kann außerdem die besten Gewichte wiederherstellen, die es vor dem Abbruch gesehen hat.
  • Checkpoint-Erstellung: Speichert das Modell nach jeder Epoche oder immer dann, wenn sich eine überwachte Metrik verbessert, damit die besten Gewichte erhalten bleiben und ein abgestürzter Lauf fortgesetzt werden kann. Keras' BackupAndRestore-Callback verwendet den gespeicherten Zustand, um einen unterbrochenen Lauf automatisch fortzusetzen.
  • Lernratensteuerung: Senkt die Lernrate, wenn eine Metrik stagniert, wie es Keras' ReduceLROnPlateau tut, oder folgt einem festen Zeitplan wie dem kosinusförmigen Abfall.
  • Experimentverfolgung: Übermittelt nach jeder Epoche Verluste, Metriken und Beispielbilder an Tools wie TensorBoard, MLflow oder Weights & Biases.
  • Hyperparameteroptimierung: Meldet den Score jeder Epoche an ein Optimierungswerkzeug wie Ray Tune, dessen Scheduler wenig aussichtsreiche Durchläufe frühzeitig abbrechen.

Einen eigenen Callback schreiben#

Ultralytics YOLO löst während des Trainings, der Validierung, der Vorhersage und des Exports benannte Ereignisse aus, etwa on_train_epoch_end und on_fit_epoch_end. Die eigenen Integrationen für MLflow, Comet, ClearML, TensorBoard und Ultralytics Platform sind als Callbacks für diese Ereignisse registriert. Dieser Callback liest nach jeder Epoche die Validierungsmetrik mAP50-95 aus und beendet einen YOLO26-Lauf, sobald ein Zielwert erreicht wird:

from ultralytics import YOLO


def stop_at_target(trainer):
    """Stop training once validation mAP50-95 reaches 0.6."""
    score = trainer.metrics["metrics/mAP50-95(B)"]
    print(f"Epoch {trainer.epoch + 1}: mAP50-95 {score:.3f}")
    if score >= 0.6:
        trainer.stop = True  # the trainer ends the run after this epoch


model = YOLO("yolo26n.pt")
model.add_callback("on_fit_epoch_end", stop_at_target)  # runs after each epoch's validation
model.train(data="coco8.yaml", epochs=20)

Das Ereignis on_fit_epoch_end wird nach dem Training und der Validierung der Epoche ausgelöst. Daher enthält trainer.metrics bereits die Werte dieser Epoche. Durch das Setzen von trainer.stop verlässt der Trainer seine Epochen-Schleife, führt wie üblich eine abschließende Validierung mit den besten Gewichten durch und speichert die Ergebnisse – genauso wie beim Erreichen der integrierten Grenze patience.

Callbacks und Hooks im Vergleich#

Die beiden Begriffe bezeichnen oft dasselbe: PyTorch Lightning nennt die Methoden, die ein Callback implementiert, Hooks. In PyTorch selbst werden Modul-Hooks, die mit register_forward_hook oder register_full_backward_hook registriert wurden, an den Vorwärts- oder Rückwärtsdurchlauf einer einzelnen Schicht angehängt statt an ein Ereignis der Trainingsschleife. Sie dienen dazu, Merkmalskarten zur Visualisierung auszulesen oder Gradienten während der Rückpropagation zu untersuchen und zu verändern.

Lösungen entdecken

Computer Vision im Sport

Computer Vision im Sport

Entdecke, wie Ultralytics YOLO die Sportbildanalyse voranbringt – mit Spieler- und Ballverfolgung, Leistungsanalysen, Erkenntnissen für das Coaching und der Rehabilitation von Athleten.
Mehr erfahren
Computer Vision für Luftbilder

Computer Vision für Luftbilder

Verwandle Drohnen- und Luftbilder mit Ultralytics YOLO in Echtzeit-Erkenntnisse für Landwirtschaft, Aquakultur, Naturschutz und Geodatenanalyse.
Mehr erfahren
Computer Vision in der Luft- und Raumfahrt

Computer Vision in der Luft- und Raumfahrt

Setze Computer Vision in der Luft- und Raumfahrt mit Ultralytics YOLO ein – für Flugzeuginspektionen, die Erkennung von Fremdkörpern auf Start- und Landebahnen, den Bodenbetrieb am Flughafen und die Erkennung von Verbundwerkstofffehlern.
Mehr erfahren
Computer Vision im Sicherheitsbereich

Computer Vision im Sicherheitsbereich

Schütze jeden Standort mit Ultralytics YOLO-Modellen. Vision-KI ermöglicht die Überwachung von Grundstücksgrenzen, die Erkennung von Bedrohungen, die Kennzeichenerkennung und die Sicherheit am Arbeitsplatz.
Mehr erfahren
Computer Vision in der Robotik

Computer Vision in der Robotik

Mach Maschinen mit Ultralytics YOLO-Modellen leistungsfähiger. Vision-KI in der Robotik ermöglicht autonome Navigation, Wahrnehmung, Objektverfolgung und Steuerung in Echtzeit.
Mehr erfahren
Bildverarbeitung in der Logistik

Bildverarbeitung in der Logistik

Optimiere die Logistik mit Ultralytics YOLO-Modellen. Vision AI ermöglicht die Paketprüfung, Sortierung und Fahrzeugverfolgung sowie die Sicherheitsüberwachung von Lagerhäusern in Echtzeit.
Mehr erfahren
Bildverarbeitung im Einzelhandel

Bildverarbeitung im Einzelhandel

Gestalte den Einzelhandel mit Ultralytics YOLO-Modellen neu. Vision AI ermöglicht Bestandsverfolgung, Regalüberwachung und Warteschlangenmanagement und liefert bessere Einblicke in das Kundenverhalten.
Mehr erfahren
Bildverarbeitung im Gesundheitswesen

Bildverarbeitung im Gesundheitswesen

Entwickle Lösungen für das Gesundheitswesen mit Ultralytics YOLO-Modellen. Vision AI ermöglicht im Gesundheitswesen schnellere medizinische Bildgebung, bessere Diagnostik und die Überwachung von Patienten.
Mehr erfahren
Computer Vision in der Fertigung

Computer Vision in der Fertigung

Optimiere die Fertigung mit Ultralytics-YOLO-Modellen. Vision AI ermöglicht Qualitätskontrolle, Fehlererkennung, die Überprüfung der Einhaltung von Vorgaben zu persönlicher Schutzausrüstung und die Automatisierung von Montagelinien.
Mehr erfahren
Computer Vision in der Automobilbranche

Computer Vision in der Automobilbranche

Setze Computer Vision in der Automobilbranche mit Ultralytics-YOLO-Modellen ein. Vision AI verbessert die Verkehrssicherheit, Fahrerassistenz und Fahrzeugautomatisierung – für intelligentere Straßen.
Mehr erfahren
Computer Vision in der Landwirtschaft

Computer Vision in der Landwirtschaft

Setze mit Ultralytics YOLO-Modellen KI für Bildverarbeitung in der intelligenten Landwirtschaft ein. Ermögliche die Überwachung von Nutzpflanzen, die Verfolgung von Nutztieren und Präzisionslandwirtschaft für höhere und nachhaltigere Erträge.
Mehr erfahren

Lass uns gemeinsam die Zukunft der KI gestalten!

Starte deine Reise in die Zukunft des maschinellen Lernens