Ultralytics YOLO27:

Leitfaden zur Hyperparameteroptimierung von Ultralytics YOLO#

Die Hyperparameteroptimierung in Ultralytics YOLO ist eine automatisierte, iterative Suche, die Einstellungen wie Lernrate, Verlustgewichte und Stärke der Datenerweiterung optimiert, um Leistungskennzahlen eines Maschinelle-Learning-Modells wie Genauigkeit, Präzision und Trefferquote zu maximieren. Statt diese Werte manuell zu testen, durchsucht Ultralytics YOLO den Hyperparameterraum mithilfe eines genetischen Algorithmus, der Kandidatenkonfigurationen über viele kurze Trainingsläufe hinweg verändert und bewertet.



Watch: How to Tune Hyperparameters for Better Model Performance 🚀

Was sind Hyperparameter?#

Hyperparameter sind übergeordnete, strukturelle Einstellungen des Algorithmus. Sie werden vor der Trainingsphase festgelegt und bleiben währenddessen konstant. Hier sind einige häufig optimierte Hyperparameter in Ultralytics YOLO:

  • Lernrate lr0: Bestimmt die Schrittweite bei jeder Iteration auf dem Weg zu einem Minimum in der Verlustfunktion.
  • Batchgröße batch: Anzahl der Bilder, die gleichzeitig in einem Vorwärtsdurchlauf verarbeitet werden.
  • Anzahl der Epochen epochs: Eine Epoche ist ein vollständiger Vorwärts- und Rückwärtsdurchlauf durch alle Trainingsbeispiele.
  • Architekturspezifika: Dazu gehören beispielsweise die Anzahl der Kanäle und Schichten sowie die Arten der Aktivierungsfunktionen. Diese Angaben befinden sich in der YAML-Modellkonfiguration und nicht in den Trainingsargumenten.

Von diesen vier Parametern befindet sich nur die Lernrate im standardmäßigen Suchraum: batch, epochs und die Architektur bleiben unverändert. Der Optimierer verändert außerdem den Zeitplan, die Verlustverstärkungen und die unten aufgeführten Datenerweiterungen.

Hyperparameter optimization search space visualization

Eine vollständige Liste der in YOLO26 verwendeten Hyperparameter für Datenerweiterungen findest du auf der Konfigurationsseite.

Genetische Evolution und Mutation#

Ultralytics YOLO verwendet genetische Algorithmen, um Hyperparameter zu optimieren. Genetische Algorithmen sind vom Mechanismus der natürlichen Selektion und der Genetik inspiriert.

  • Selektion: Bei jeder Iteration wird anhand der Fitness eine von bis zu neun Konfigurationen mit der höchsten Fitness ausgewählt. Nach 30 Ergebnissen schätzen außerdem die besten 20 % aller Ergebnisse (höchstens 30) die Paramet kovarianz, wobei ihr Einfluss zunimmt, sobald sich mehr Belege für Spitzenkandidaten ansammeln.
  • Mutation: Bei jeder Iteration wird ungefähr die Hälfte der Parameter mithilfe von Gauß-Schritten verändert, die auf ihre Suchbereiche normiert sind. Sobald die Kovarianz aktiv ist, verwendet ein vertrauensgewichteter Anteil von höchstens 40 % korrelierte Schritte. Durch Spiegelung werden diese Schritte innerhalb der Grenzen gehalten, ohne abgeschnittene Werte anzusammeln. Wenn sich über mehrere Versuche keine Verbesserung ergibt, werden die Schrittweiten über 25 Versuche hinweg linear um bis zu 20 % verkleinert und beim Finden eines neuen besten Ergebnisses zurückgesetzt. Iteration 1 hat keinen Elternkandidaten und verwendet die standardmäßigen Trainingshyperparameter als Ausgangsbasis.

Vorbereitung auf die Hyperparameteroptimierung#

Bevor du mit der Optimierung beginnst, ist es wichtig, Folgendes zu beachten:

  1. Kennzahlen bestimmen: Der integrierte Optimierer (use_ray=False) ordnet Versuche nach dem fitness-Wert der Aufgabe. use_ray=True verwendet die Aufgabenkennzahl. Lege fest, welche sekundären Kennzahlen du untersuchen möchtest, etwa AP50 oder den F1-Wert.
  2. Optimierungsbudget festlegen: Definiere, wie viele Rechenressourcen du bereitstellen möchtest. Die Hyperparameteroptimierung kann sehr rechenintensiv sein.

Funktionsweise der Optimierungsschleife#

Bei jeder Iteration wiederholt der integrierte Optimierer die folgende Schleife:

  1. Hyperparameter initialisieren – Beginne mit einer sinnvollen Ausgangsbasis, entweder mit den von Ultralytics YOLO festgelegten Standardhyperparametern oder mit Werten, die auf deinem Fachwissen oder früheren Experimenten beruhen.
  2. Hyperparameter verändern – Die Klasse Tuner erzeugt automatisch mit ihrer _mutate-Methode aus dem vorhandenen Satz einen neuen Satz von Hyperparametern.
  3. Modell trainieren – Trainiere das Modell mit den veränderten Hyperparametern und bewerte anschließend die Trainingsleistung anhand deiner ausgewählten Kennzahlen.
  4. Modell bewerten – Der Bewertungsprozess erzeugt den Fitnesswert der Iteration. Dieser wird mit vorherigen Iterationen verglichen, um festzustellen, ob die aktuellen Hyperparameter eine Verbesserung darstellen.
  5. Ergebnisse protokollieren – Speichere sowohl die Leistungskennzahlen als auch die zugehörigen Hyperparameter zur späteren Verwendung. Ultralytics YOLO speichert diese Ergebnisse automatisch im NDJSON-Format.
  6. Wiederholen – Fahre fort, bis die festgelegte Anzahl an Iterationen erreicht ist. Jede Iteration baut dabei auf den Erkenntnissen vorheriger Durchläufe auf. Der integrierte Optimierer führt alle iterations aus. Ray Tune meldet Kennzahlen nach jeder Trainings-Epoche, sodass ASHA schwache Versuche nach Ablauf der Kulanzphase beenden kann.

Iterationen und Populationsgröße#

Beim integrierten Optimierer (use_ray=False) steuert iterations die Gesamtzahl der aufeinanderfolgenden Versuche und ist standardmäßig auf 300 gesetzt. Jeder Versuch trainiert ein Modell mit einer Hyperparameterkonfiguration. Beispielsweise plant iterations=40 mit epochs=50 40 unabhängige Trainingsläufe mit jeweils 50 Epochen und nicht einen einzigen Lauf mit 50 Epochen und einer separaten Population aus 40 Kandidaten.

Der integrierte genetische Algorithmus verfügt über keinen expliziten Parameter für die Populationsgröße. Sobald vorherige Versuche vorhanden sind, wählt er aus bis zu neun Konfigurationen mit der höchsten Fitness aus und verändert pro Iteration einen Kandidaten.

Für parallele Versuche oder fortgeschrittenere Suchstrategien setzt du use_ray=True, um Ray Tune zu verwenden. Ray Tune nutzt standardmäßig ebenfalls 300 Versuche und erhält iterations als num_samples. Einzelheiten findest du im Leitfaden zur Ray-Tune-Integration.

Standardmäßiger Suchraum#

Die folgende Tabelle listet die Parameter des standardmäßigen Suchraums für die Hyperparameteroptimierung in YOLO26 auf. Für jeden Parameter ist ein bestimmter Wertebereich durch ein Tupel (min, max) definiert.

ParameterTypWertebereichBeschreibung
lr0float(1e-5, 1e-2)Anfängliche Lernrate zu Beginn des Trainings. Niedrigere Werte sorgen für ein stabileres Training, führen aber zu einer langsameren Konvergenz
lrffloat(0.01, 1.0)Endgültiger Lernratenfaktor als Bruchteil von lr0. Steuert, wie stark die Lernrate während des Trainings sinkt
momentumfloat(0.7, 0.98)SGD-Momentumfaktor. Höhere Werte helfen, eine gleichbleibende Gradientenrichtung beizubehalten, und können die Konvergenz beschleunigen
weight_decayfloat(0.0, 0.001)L2-Regularisierungsfaktor zur Vermeidung von Überanpassung. Größere Werte bewirken eine stärkere Regularisierung
warmup_epochsfloat(0.0, 5.0)Anzahl der Epochen für das lineare Aufwärmen der Lernrate. Hilft, Instabilitäten zu Beginn des Trainings zu vermeiden
warmup_momentumfloat(0.0, 0.95)Initiales Momentum während der Aufwärmphase. Erhöht sich schrittweise bis zum endgültigen Momentumwert
boxfloat(1.0, 20.0)Gewichtung des Verlusts der Bounding Box in der Gesamtverlustfunktion. Gleicht Boxregression und Klassifikation aus
clsfloat(0.1, 4.0)Gewichtung des Klassifikationsverlusts in der Gesamtverlustfunktion. Höhere Werte legen mehr Gewicht auf die korrekte Klassenvorhersage
cls_pwfloat(0.0, 1.0)Gewichtungsexponent für Klassen zum Umgang mit unausgeglichenen Klassen. Höhere Werte erhöhen das Gewicht seltener Klassen
dflfloat(0.4, 12.0)Gewichtung des Regressionsanteils für die Boxdistanz. DFL-freies YOLO26 wendet diese Verstärkung auf einen L1-Verlust der normalisierten Boxdistanzen an; höhere Werte legen mehr Gewicht auf eine präzise Lokalisierung
hsv_hfloat(0.0, 0.1)Bereich der zufälligen Farbtonänderung im HSV-Farbraum. Hilft dem Modell, über verschiedene Farbvariationen hinweg zu verallgemeinern
hsv_sfloat(0.0, 0.9)Bereich der zufälligen Sättigungsänderung im HSV-Farbraum. Simuliert unterschiedliche Lichtverhältnisse
hsv_vfloat(0.0, 0.9)Bereich der zufälligen Änderung des Werts (Helligkeit). Hilft dem Modell, mit unterschiedlichen Belichtungsstufen umzugehen
degreesfloat(0.0, 45.0)Maximale Drehung in Grad. Hilft dem Modell, gegenüber der Ausrichtung von Objekten invariant zu werden
translatefloat(0.0, 0.9)Maximale Verschiebung als Bruchteil der Bildgröße. Erhöht die Robustheit gegenüber der Objektposition
scalefloat(0.0, 0.95)Bereich der zufälligen Skalierung. Hilft dem Modell, Objekte in unterschiedlichen Größen zu erkennen
shearfloat(0.0, 10.0)Maximale Scherung in Grad. Fügt den Trainingsbildern perspektivähnliche Verzerrungen hinzu
perspectivefloat(0.0, 0.001)Bereich der zufälligen perspektivischen Verzerrung. Simuliert unterschiedliche Betrachtungswinkel
flipudfloat(0.0, 1.0)Wahrscheinlichkeit einer vertikalen Bildspiegelung während des Trainings. Nützlich für Aufnahmen aus der Vogelperspektive und Luftbilder
fliplrfloat(0.0, 1.0)Wahrscheinlichkeit einer horizontalen Bildspiegelung. Hilft dem Modell, gegenüber der Objektrichtung invariant zu werden
bgrfloat(0.0, 1.0)Wahrscheinlichkeit der BGR-Datenerweiterung, bei der die Farbkanäle vertauscht werden. Kann zur Farbinvarianz beitragen
mosaicfloat(0.0, 1.0)Wahrscheinlichkeit der Mosaik-Datenerweiterung, bei der vier Bilder kombiniert werden. Besonders nützlich für die Erkennung kleiner Objekte
mixupfloat(0.0, 1.0)Wahrscheinlichkeit der MixUp-Datenerweiterung, bei der zwei Bilder überblendet werden. Kann die Robustheit des Modells verbessern
cutmixfloat(0.0, 1.0)Wahrscheinlichkeit der CutMix-Datenerweiterung. Kombiniert Bildbereiche und erhält dabei lokale Merkmale
copy_pastefloat(0.0, 1.0)Im Modus flip der Anteil der kopierten geeigneten Objekte; im Modus mixup zusätzlich die Wahrscheinlichkeit, dass die Erweiterung angewendet wird
close_mosaicint(0.0, 10.0)Deaktiviert Mosaik in den letzten N Epochen, um das Training vor dem Abschluss zu stabilisieren. Wird als Gleitkommazahl verändert und anschließend auf eine ganze Anzahl von Epochen gerundet

Beispiel für einen benutzerdefinierten Suchraum#

So definierst du einen Suchraum und verwendest die model.tune()-Methode, um die Klasse Tuner zur Hyperparameteroptimierung von YOLO26n auf COCO8 über 30 Epochen mit einem AdamW-Optimierer zu nutzen. Zur schnelleren Optimierung werden Zeichnen, Speichern von Prüfpunkten und Validierung übersprungen, außer in der letzten Epoche.

Warnung

Dieses Beispiel dient ausschließlich der Demonstration. Hyperparameter aus kurzen oder kleinen Optimierungsläufen sind für das Training in der Praxis nur selten optimal. In der Praxis sollte die Optimierung unter Bedingungen durchgeführt werden, die dem vollständigen Training ähneln, einschließlich vergleichbarer Datensätze, Epochenzahlen und Datenerweiterungen, um zuverlässige und übertragbare Ergebnisse zu gewährleisten. Eine schnelle Optimierung kann Parameter zugunsten einer schnelleren Konvergenz oder kurzfristiger Validierungsgewinne verzerren, die sich nicht verallgemeinern lassen.

Beispiel
from ultralytics import YOLO

# Initialize the YOLO model
model = YOLO("yolo26n.pt")

# Define search space
search_space = {
    "lr0": (1e-5, 1e-2),
    "degrees": (0.0, 45.0),
}

# Tune hyperparameters on COCO8 for 30 epochs
model.tune(
    data="coco8.yaml",
    epochs=30,
    iterations=300,
    optimizer="AdamW",
    space=search_space,
    plots=False,
    save=False,
    val=False,
)

Fortsetzen einer unterbrochenen Hyperparameteroptimierung#

Du kannst eine unterbrochene Hyperparameteroptimierung fortsetzen, indem du resume=True übergibst. Optional kannst du das unter runs/{task} verwendete Verzeichnis name zum Fortsetzen angeben. Ohne ein name wird das wörtlich tune genannte Verzeichnis fortgesetzt. Dies ist der Standardname und nicht unbedingt das Verzeichnis der zuletzt ausgeführten Sitzung. Verwende daher name für einen Lauf, den du mit einem benutzerdefinierten Namen gestartet hast. Außerdem musst du alle vorherigen Trainingsargumente einschließlich data, epochs, iterations und space angeben.

`resume=True` mit `model.tune()` verwenden
from ultralytics import YOLO

# Define a YOLO model
model = YOLO("yolo26n.pt")

# Define search space
search_space = {
    "lr0": (1e-5, 1e-2),
    "degrees": (0.0, 45.0),
}

# Resume previous run
results = model.tune(data="coco8.yaml", epochs=50, iterations=300, space=search_space, resume=True)

# Resume tuning run with name 'tune_exp'
results = model.tune(data="coco8.yaml", epochs=50, iterations=300, space=search_space, name="tune_exp", resume=True)

Ergebnisse#

Nach erfolgreichem Abschluss der Hyperparameteroptimierung erhältst du mehrere Dateien und Verzeichnisse, die die Optimierungsergebnisse enthalten. Im Folgenden werden sie beschrieben:

Dateistruktur#

So sieht die Verzeichnisstruktur der Ergebnisse aus. Trainingsverzeichnisse wie train/ und train-2/ enthalten einzelne Optimierungsiterationen, also jeweils ein Modell, das mit einem Hyperparametersatz trainiert wurde. Das Verzeichnis tune/ enthält die Optimierungsergebnisse aller einzelnen Modelltrainings:

runs/
└── detect/
    ├── train/
    ├── train-2/
    ├── ...
    └── tune/
        ├── best_hyperparameters.yaml
        ├── tune_fitness.png
        ├── tune_results.ndjson
        ├── tune_scatter_plots.png
        └── weights/
            ├── last.pt
            └── best.pt

Dateibeschreibungen#

best_hyperparameters.yaml#

Diese YAML-Datei enthält die leistungsstärksten Hyperparameter, die während der Optimierung gefunden wurden. Du kannst sie verwenden, um zukünftige Trainingsläufe mit diesen optimierten Einstellungen zu initialisieren.

  • Format: YAML

  • Verwendung: Hyperparameterergebnisse

  • Beispiel:

    # 558/900 iterations complete ✅ (45536.81s)
    # Results saved to /usr/src/ultralytics/runs/detect/tune
    # Best fitness=0.64297 observed at iteration 498
    # Best fitness metrics are {'metrics/precision(B)': 0.87247, 'metrics/recall(B)': 0.71387, 'metrics/mAP50(B)': 0.79106, 'metrics/mAP50-95(B)': 0.62651, 'val/box_loss': 2.79884, 'val/cls_loss': 2.72386, 'val/l1_loss': 0.68503, 'fitness': 0.64297}
    # Best fitness model is /usr/src/ultralytics/runs/detect/tune/weights
    # Best fitness hyperparameters are printed below.
    
    lr0: 0.00269
    lrf: 0.00288
    momentum: 0.73375
    weight_decay: 0.00015
    warmup_epochs: 1.22935
    warmup_momentum: 0.1525
    box: 18.27875
    cls: 1.32899
    dfl: 0.56016
    hsv_h: 0.01148
    hsv_s: 0.53554
    hsv_v: 0.13636
    degrees: 0.0
    translate: 0.12431
    scale: 0.07643
    shear: 0.0
    perspective: 0.0
    flipud: 0.0
    fliplr: 0.08631
    mosaic: 0.42551
    mixup: 0.0
    copy_paste: 0.0

tune_fitness.png#

Diese Grafik stellt die Fitness in Abhängigkeit von der Anzahl der Iterationen dar. Sie hilft dir, die Leistung des genetischen Algorithmus im Zeitverlauf zu visualisieren.

  • Format: PNG
  • Verwendung: Visualisierung der Leistung

Hyperparameter Tuning Fitness vs Iteration

Die Grafik enthält:

  • Eine Markierung pro Iteration und Datensatz: Bei einem Lauf mit einem Datensatz wird ein Punkt pro Iteration angezeigt, bei einem Lauf mit mehreren Datensätzen ein Punkt pro Datensatz und Iteration.
  • Eine gepunktete Linie für den „geglätteten Mittelwert“, berechnet als Gauß-Glättung (sigma=3) der übergeordneten Fitnesswerte pro Iteration.

tune_results.ndjson#

Eine NDJSON-Datei mit detaillierten Ergebnissen jeder Optimierungsiteration. Jede Zeile enthält ein JSON-Objekt mit der aggregierten Fitness, den optimierten Hyperparametern und den Kennzahlen pro Datensatz. Für Optimierungen mit einem oder mehreren Datensätzen wird dasselbe Dateiformat verwendet.

  • Format: NDJSON
  • Verwendung: Nachverfolgung der Ergebnisse pro Iteration.
  • Beispiel:

Zur besseren Lesbarkeit folgt ein formatiertes Beispiel. In der tatsächlichen Datei .ndjson wird jedes Objekt in einer einzelnen Zeile gespeichert.

{
    "iteration": 1,
    "fitness": 0.48628,
    "hyperparameters": {
        "lr0": 0.01,
        "lrf": 0.01,
        "momentum": 0.937,
        "weight_decay": 0.0005
    },
    "datasets": {
        "coco8": {
            "metrics/precision(B)": 0.65666,
            "metrics/recall(B)": 0.85,
            "metrics/mAP50(B)": 0.85086,
            "metrics/mAP50-95(B)": 0.64104,
            "val/box_loss": 1.57958,
            "val/cls_loss": 1.04986,
            "val/l1_loss": 1.32641,
            "fitness": 0.64104
        },
        "coco8-grayscale": {
            "metrics/precision(B)": 0.6582,
            "metrics/recall(B)": 0.51667,
            "metrics/mAP50(B)": 0.59106,
            "metrics/mAP50-95(B)": 0.33152,
            "val/box_loss": 1.95424,
            "val/cls_loss": 1.64059,
            "val/l1_loss": 1.70226,
            "fitness": 0.33152
        }
    },
    "save_dirs": {
        "coco8": "runs/detect/coco8",
        "coco8-grayscale": "runs/detect/coco8-grayscale"
    }
}

Das übergeordnete fitness ist der arithmetische Mittelwert der fitness-Werte pro Datensatz. Bei einer Optimierung mit einem Datensatz enthält das datasets-Diktat einen Eintrag, dessen fitness dem übergeordneten fitness entspricht. Pro abgeschlossener Iteration wird ein JSON-Objekt gespeichert. Die tatsächlichen save_dirs-Pfade sind absolut; zur besseren Lesbarkeit werden sie oben verkürzt dargestellt.

tune_scatter_plots.png#

Diese Datei enthält aus tune_results.ndjson erzeugte Streudiagramme, mit denen du Beziehungen zwischen verschiedenen Hyperparametern und Leistungskennzahlen visualisieren kannst. Die Mutation verwendet den konfigurierten Bereich jedes Hyperparameters, sodass sich Werte aus standardmäßig auf null gesetzten Ausgangswerten wie degrees und shear entwickeln können.

  • Format: PNG
  • Verwendung: Explorative Datenanalyse

Hyperparameter tuning results scatter plot analysis

weights/#

Dieses Verzeichnis enthält die gespeicherten PyTorch-Modelle aus der Iteration mit der besten Fitness des Optimierungslaufs. Beide Dateien stammen aus derselben Iteration:

  • last.pt: last.pt enthält die Gewichte aus der letzten Trainingsepoche.
  • best.pt: best.pt enthält die Gewichte der Iteration, die den besten Fitnesswert erzielt hat.

Mit diesen Ergebnissen kannst du fundiertere Entscheidungen für zukünftige Modelltrainings und Analysen treffen.

Fazit#

Die Hyperparameteroptimierung in Ultralytics YOLO lässt sich einfach starten und ist dank fitnessgewichteter Selektion und bereichsnormierter Mutation in einem genetischen Algorithmus zugleich leistungsfähig. Wenn du der in diesem Leitfaden beschriebenen Schleife folgst, kannst du dein Modell systematisch auf bessere Leistung optimieren und anschließend best_hyperparameters.yaml verwenden, um zukünftige Trainingsläufe zu initialisieren. Um die Optimierung auf parallele Versuche und fortgeschrittenere Suchalgorithmen zu skalieren, lies den Leitfaden zur Ray-Tune-Integration oder führe verwaltete Aufträge mit konfigurierbaren Hyperparametern und Echtzeitverfolgung der Kennzahlen auf der Ultralytics Platform über das Cloud-Training aus.

Für Einstellungen, die kein Argument bereitstellt, etwa Lernraten pro Schicht oder eine benutzerdefinierte Fitnesskennzahl, kannst du stattdessen den Trainer ableiten. Für weiterführende Einblicke kannst du den Quellcode der Klasse Tuner untersuchen. Wenn du Fragen oder Funktionswünsche hast, wende dich an GitHub oder Discord.

FAQ#

  • Lege mit dem Parameter lr0 einen Anfangswert fest. Übliche Werte reichen von 0.001 bis 0.01. Anschließend kann die Optimierung den Wert verändern, um das Optimum zu finden. Dies lässt sich mit der Methode model.tune() automatisieren. Zum Beispiel:

    Beispiel
    from ultralytics import YOLO
    
    # Initialize the YOLO model
    model = YOLO("yolo26n.pt")
    
    # Tune hyperparameters on COCO8 for 30 epochs
    model.tune(data="coco8.yaml", epochs=30, iterations=300, optimizer="AdamW", plots=False, save=False, val=False)

    Weitere Informationen findest du auf der Ultralytics-YOLO-Konfigurationsseite.

  • Genetische Algorithmen in Ultralytics YOLO26 bieten eine robuste Methode zur Erkundung des Hyperparameterraums und führen zu einer stark optimierten Modellleistung. Zu den wichtigsten Vorteilen gehören:

    • Effiziente Suche: Die fitnessgewichtete Auswahl bewahrt leistungsstarke Konfigurationen, während die bereichsnormierte Mutation neue Kandidaten erkundet.
    • Vermeidung lokaler Minima: Durch das Einführen von Zufälligkeit helfen sie, lokale Minima zu vermeiden und eine bessere globale Optimierung zu gewährleisten.
    • Leistungsmetriken: Sie passen sich anhand eines aufgabenspezifischen Fitnesswerts an (mAP50-95 für die Objekterkennung).

    Wie genetische Algorithmen Hyperparameter optimieren können, erfährst du im Leitfaden zur Hyperparameterentwicklung.

  • Die für die Hyperparameterabstimmung mit Ultralytics YOLO benötigte Zeit hängt weitgehend von mehreren Faktoren ab, etwa von der Größe des Datensatzes, der Komplexität der Modellarchitektur, der Anzahl der Iterationen und den verfügbaren Rechenressourcen. Die Abstimmung von YOLO26n auf einem Datensatz wie COCO8 über 30 Epochen kann beispielsweise je nach Hardware mehrere Stunden bis Tage dauern.

    Um die Abstimmungszeit effektiv zu verwalten, lege vorher ein klares Abstimmungsbudget fest, wie unter Vorbereitung auf die Hyperparameterabstimmung beschrieben. So lassen sich Ressourcenzuweisung und Optimierungsziele besser ausbalancieren.

  • Bei der Bewertung der Modellleistung während der Hyperparameterabstimmung in YOLO kannst du mehrere wichtige Metriken verwenden:

    • AP50: Die durchschnittliche Präzision bei einem IoU-Schwellenwert von 0.50.
    • F1-Wert: Das harmonische Mittel aus Präzision und Recall.
    • Präzision und Recall: Einzelne Metriken, die die Genauigkeit des Modells bei der Erkennung echter positiver Ergebnisse im Vergleich zu falschen positiven und falschen negativen Ergebnissen angeben.

    Diese Metriken helfen dir, verschiedene Aspekte der Modellleistung zu verstehen. Eine umfassende Übersicht findest du im Leitfaden zu den Leistungsmetriken von Ultralytics YOLO.

  • Ja, Ultralytics YOLO26 lässt sich für eine fortgeschrittene Hyperparameteroptimierung in Ray Tune integrieren. Ray Tune bietet ausgefeilte Suchalgorithmen wie die Bayes'sche Optimierung und Hyperband sowie Funktionen zur parallelen Ausführung, um den Abstimmungsprozess zu beschleunigen.

    Um Ray Tune mit YOLO26 zu verwenden, setze den Parameter use_ray=True einfach im Aufruf der Methode model.tune(). Weitere Informationen und Beispiele findest du im Leitfaden zur Ray-Tune-Integration.

Kommentare