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.
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:
- Kennzahlen bestimmen: Der integrierte Optimierer (
use_ray=False) ordnet Versuche nach demfitness-Wert der Aufgabe.use_ray=Trueverwendet die Aufgabenkennzahl. Lege fest, welche sekundären Kennzahlen du untersuchen möchtest, etwa AP50 oder den F1-Wert. - 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:
- 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.
- Hyperparameter verändern – Die Klasse
Tunererzeugt automatisch mit ihrer_mutate-Methode aus dem vorhandenen Satz einen neuen Satz von Hyperparametern. - Modell trainieren – Trainiere das Modell mit den veränderten Hyperparametern und bewerte anschließend die Trainingsleistung anhand deiner ausgewählten Kennzahlen.
- Modell bewerten – Der Bewertungsprozess erzeugt den Fitnesswert der Iteration. Dieser wird mit vorherigen Iterationen verglichen, um festzustellen, ob die aktuellen Hyperparameter eine Verbesserung darstellen.
- 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.
- 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
iterationsaus. 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.
| Parameter | Typ | Wertebereich | Beschreibung |
|---|---|---|---|
lr0 | float | (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 |
lrf | float | (0.01, 1.0) | Endgültiger Lernratenfaktor als Bruchteil von lr0. Steuert, wie stark die Lernrate während des Trainings sinkt |
momentum | float | (0.7, 0.98) | SGD-Momentumfaktor. Höhere Werte helfen, eine gleichbleibende Gradientenrichtung beizubehalten, und können die Konvergenz beschleunigen |
weight_decay | float | (0.0, 0.001) | L2-Regularisierungsfaktor zur Vermeidung von Überanpassung. Größere Werte bewirken eine stärkere Regularisierung |
warmup_epochs | float | (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_momentum | float | (0.0, 0.95) | Initiales Momentum während der Aufwärmphase. Erhöht sich schrittweise bis zum endgültigen Momentumwert |
box | float | (1.0, 20.0) | Gewichtung des Verlusts der Bounding Box in der Gesamtverlustfunktion. Gleicht Boxregression und Klassifikation aus |
cls | float | (0.1, 4.0) | Gewichtung des Klassifikationsverlusts in der Gesamtverlustfunktion. Höhere Werte legen mehr Gewicht auf die korrekte Klassenvorhersage |
cls_pw | float | (0.0, 1.0) | Gewichtungsexponent für Klassen zum Umgang mit unausgeglichenen Klassen. Höhere Werte erhöhen das Gewicht seltener Klassen |
dfl | float | (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_h | float | (0.0, 0.1) | Bereich der zufälligen Farbtonänderung im HSV-Farbraum. Hilft dem Modell, über verschiedene Farbvariationen hinweg zu verallgemeinern |
hsv_s | float | (0.0, 0.9) | Bereich der zufälligen Sättigungsänderung im HSV-Farbraum. Simuliert unterschiedliche Lichtverhältnisse |
hsv_v | float | (0.0, 0.9) | Bereich der zufälligen Änderung des Werts (Helligkeit). Hilft dem Modell, mit unterschiedlichen Belichtungsstufen umzugehen |
degrees | float | (0.0, 45.0) | Maximale Drehung in Grad. Hilft dem Modell, gegenüber der Ausrichtung von Objekten invariant zu werden |
translate | float | (0.0, 0.9) | Maximale Verschiebung als Bruchteil der Bildgröße. Erhöht die Robustheit gegenüber der Objektposition |
scale | float | (0.0, 0.95) | Bereich der zufälligen Skalierung. Hilft dem Modell, Objekte in unterschiedlichen Größen zu erkennen |
shear | float | (0.0, 10.0) | Maximale Scherung in Grad. Fügt den Trainingsbildern perspektivähnliche Verzerrungen hinzu |
perspective | float | (0.0, 0.001) | Bereich der zufälligen perspektivischen Verzerrung. Simuliert unterschiedliche Betrachtungswinkel |
flipud | float | (0.0, 1.0) | Wahrscheinlichkeit einer vertikalen Bildspiegelung während des Trainings. Nützlich für Aufnahmen aus der Vogelperspektive und Luftbilder |
fliplr | float | (0.0, 1.0) | Wahrscheinlichkeit einer horizontalen Bildspiegelung. Hilft dem Modell, gegenüber der Objektrichtung invariant zu werden |
bgr | float | (0.0, 1.0) | Wahrscheinlichkeit der BGR-Datenerweiterung, bei der die Farbkanäle vertauscht werden. Kann zur Farbinvarianz beitragen |
mosaic | float | (0.0, 1.0) | Wahrscheinlichkeit der Mosaik-Datenerweiterung, bei der vier Bilder kombiniert werden. Besonders nützlich für die Erkennung kleiner Objekte |
mixup | float | (0.0, 1.0) | Wahrscheinlichkeit der MixUp-Datenerweiterung, bei der zwei Bilder überblendet werden. Kann die Robustheit des Modells verbessern |
cutmix | float | (0.0, 1.0) | Wahrscheinlichkeit der CutMix-Datenerweiterung. Kombiniert Bildbereiche und erhält dabei lokale Merkmale |
copy_paste | float | (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_mosaic | int | (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.
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.
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.
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.ptDateibeschreibungen#
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
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
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
lr0einen Anfangswert fest. Übliche Werte reichen von0.001bis0.01. Anschließend kann die Optimierung den Wert verändern, um das Optimum zu finden. Dies lässt sich mit der Methodemodel.tune()automatisieren. Zum Beispiel:Beispielfrom 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=Trueeinfach im Aufruf der Methodemodel.tune(). Weitere Informationen und Beispiele findest du im Leitfaden zur Ray-Tune-Integration.