Leitfaden von Ultralytics zu Hyperparameteroptimierung#
Das Hyperparameter-Tuning in Ultralytics YOLO ist eine automatisierte, iterative Suche, die Einstellungen wie Lernrate, Verlustgewichte und Stärke der Augmentierung optimiert, um die Leistungskennzahlen eines maschinellen Lern-Modells wie Genauigkeit, Präzision und Trefferquote zu maximieren. Statt diese Werte manuell zu testen, erkundet Ultralytics YOLO mit einem genetischen Algorithmus den Hyperparameterraum und verändert und bewertet dabei mögliche Konfigurationen in vielen kurzen Trainingsläufen.
Ansehen: So optimierst du Hyperparameter für eine bessere Modellleistung 🚀
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 in Ultralytics YOLO optimierte Hyperparameter:
- Lernrate
lr0: Bestimmt die Schrittweite bei jeder Iteration auf dem Weg zu einem Minimum der Verlustfunktion. - Batchgröße
batch: Anzahl der Bilder, die gleichzeitig in einem Forward Pass verarbeitet werden. - Anzahl der Epochen
epochs: Eine Epoche umfasst einen vollständigen Forward- und Backward-Pass aller Trainingsbeispiele. - Architekturspezifikationen: Zum Beispiel Anzahl der Kanäle und Schichten, Typen der Aktivierungsfunktionen usw. Diese sind in der YAML-Modellkonfiguration festgelegt und nicht in den Trainingsargumenten.
Von diesen vier Parametern gehört nur die Lernrate zum standardmäßigen Suchraum: batch, epochs und die Architektur bleiben unverändert. Der Optimierer verändert außerdem den Zeitplan, die Verlustgewichtungen und die unten aufgeführten Augmentierungen weiter unten.
Eine vollständige Liste der in YOLO26 verwendeten Augmentierungs-Hyperparameter findest du auf der Konfigurationsseite.
Genetische Evolution und Mutation#
Ultralytics YOLO verwendet genetische Algorithmen, um Hyperparameter zu optimieren. Genetische Algorithmen sind von den Mechanismen der natürlichen Selektion und der Genetik inspiriert.
- Selektion: Bei jeder Iteration wird eine von bis zu neun Konfigurationen mit der höchsten Fitness ausgewählt, wobei die Auswahl nach Fitness gewichtet wird. Nach 30 Ergebnissen wird anhand der besten 20 % aller Ergebnisse (bis zu 30) zusätzlich die Parameterkovarianz geschätzt. Ihr Einfluss nimmt zu, wenn sich mehr Belege aus Elite-Ergebnissen ansammeln.
- Mutation: Bei jeder Iteration wird etwa die Hälfte der Parameter mithilfe gaußscher Schritte verändert, die auf ihre Suchbereiche normiert sind. Sobald die Kovarianz aktiv ist, wird ein nach Konfidenz gewichteter Anteil von höchstens 40 % mit korrelierten Schritten verändert. Eine Spiegelung hält diese Schritte innerhalb der Grenzen, ohne abgeschnittene Werte anzusammeln. Wenn sich Versuche ohne Verbesserung häufen, werden die Schrittweiten über 25 Versuche hinweg linear um bis zu 20 % verkleinert und bei einem neuen Bestwert zurückgesetzt. Iteration 1 hat keinen Elternkandidaten und verwendet die standardmäßigen Trainings-Hyperparameter als Ausgangsbasis.
Vorbereitung auf das Hyperparameter-Tuning#
Bevor du mit dem Tuning beginnst, solltest du Folgendes beachten:
- Kennzahlen bestimmen: Der integrierte Optimierer (
use_ray=False) ordnet Versuche nach demfitness-Wert der jeweiligen Aufgabe.use_ray=Trueverwendet hingegen die Aufgabenkennzahl. Lege fest, welche zusätzlichen Kennzahlen du prüfen möchtest, etwa AP50 oder den F1-Wert. - Tuning-Budget festlegen: Bestimme, wie viele Rechenressourcen du bereitstellen möchtest. Hyperparameter-Tuning kann rechenintensiv sein.
Ablauf der Tuning-Schleife#
Bei jeder Iteration wiederholt der integrierte Optimierer die folgende Schleife:
- Hyperparameter initialisieren — Beginne mit einer geeigneten Ausgangsbasis: entweder mit den standardmäßigen Hyperparametern von Ultralytics YOLO oder mit Werten, die auf deinem Fachwissen oder früheren Experimenten beruhen.
- Hyperparameter verändern — Die Klasse
Tunererstellt automatisch mit ihrer Methode_mutateeinen neuen Satz Hyperparameter auf Grundlage des vorhandenen Satzes. - Modell trainieren — Trainiere das Modell mit den veränderten Hyperparametern und bewerte anschließend die Trainingsleistung anhand der ausgewählten Kennzahlen.
- Modell bewerten — Der Bewertungsprozess liefert den Fitnesswert der Iteration. Dieser wird mit den Werten vorheriger Iterationen verglichen, um festzustellen, ob die aktuellen Hyperparameter eine Verbesserung darstellen.
- Ergebnisse protokollieren — Halte sowohl die Leistungskennzahlen als auch die zugehörigen Hyperparameter zur späteren Verwendung fest. Ultralytics YOLO speichert diese Ergebnisse automatisch im NDJSON-Format.
- Wiederholen — Fahre fort, bis die festgelegte Anzahl von Iterationen erreicht ist. Jede Iteration baut auf den Erkenntnissen aus früheren Durchläufen auf. Der integrierte Optimierer führt alle
iterationsaus. Ray Tune meldet die Kennzahlen nach jeder Fit-Epoche, sodass ASHA schwache Versuche nach Ablauf der Kulanzzeit beenden kann.
Iterationen und Populationsgröße#
Beim integrierten Optimierer (use_ray=False) legt iterations die Gesamtzahl der aufeinanderfolgenden Versuche fest. Der Standardwert ist 300. Bei jedem Versuch wird ein Modell mit einer Hyperparameterkonfiguration trainiert. Zum Beispiel plant iterations=40 mit epochs=50 40 unabhängige Trainingsläufe mit je 50 Epochen – nicht einen 50-Epochen-Lauf mit einer separaten Population aus 40 Kandidaten.
Der integrierte genetische Algorithmus hat keinen expliziten Parameter für die Populationsgröße. Sobald frühere Versuche vorliegen, wählt er aus bis zu neun Konfigurationen mit der höchsten Fitness aus und verändert bei jeder Iteration einen Kandidaten.
Für parallele Versuche oder erweiterte Suchstrategien setze use_ray=True auf Ray Tune. Ray Tune verwendet denselben Standardwert von 300 Versuchen und erhält iterations als num_samples. Weitere Informationen findest du in der Integrationsanleitung zu Ray Tune.
Standardmäßiger Suchraum#
Die folgende Tabelle führt die Standardparameter des Suchraums für das Hyperparameter-Tuning in YOLO26 auf. Für jeden Parameter ist ein bestimmter Wertebereich als Tupel (min, max) definiert.
| Parameter | Typ | Wertebereich | Beschreibung |
|---|---|---|---|
lr0 | float | (1e-5, 1e-2) | Anfangslernrate zu Beginn des Trainings. Niedrigere Werte sorgen für ein stabileres Training, verlangsamen aber die Konvergenz. |
lrf | float | (0.01, 1.0) | Faktor für die finale Lernrate als Anteil von lr0. Bestimmt, wie stark die Lernrate während des Trainings sinkt. |
momentum | float | (0.7, 0.98) | SGD-Momentumfaktor. Höhere Werte tragen dazu bei, die Gradientenrichtung beizubehalten, und können die Konvergenz beschleunigen. |
weight_decay | float | (0.0, 0.001) | L2-Regularisierungsfaktor zur Vermeidung von Overfitting. Höhere 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ät zu Beginn des Trainings zu vermeiden. |
warmup_momentum | float | (0.0, 0.95) | Anfangsmomentum während der Aufwärmphase. Steigt schrittweise bis zum finalen Momentumwert an. |
box | float | (1.0, 20.0) | Gewichtung des BBox-Verlusts in der Gesamtverlustfunktion. Gleicht Box-Regression und Klassifizierung gegeneinander ab. |
cls | float | (0.1, 4.0) | Gewichtung des Klassifizierungsverlusts in der Gesamtverlustfunktion. Höhere Werte betonen die korrekte Klassenvorhersage. |
cls_pw | float | (0.0, 1.0) | Klassengewichtungsfaktor zum Ausgleich unausgewogener Klassen. Höhere Werte verstärken die Gewichtung seltener Klassen. |
dfl | float | (0.4, 12.0) | Gewichtung des Regressionsanteils für den Box-Abstand. Das DFL-freie YOLO26 wendet diesen Faktor auf einen L1-Verlust der normalisierten Box-Abstände an; höhere Werte betonen eine präzise Lokalisierung. |
hsv_h | float | (0.0, 0.1) | Bereich der zufälligen Farbton-Augmentierung im HSV-Farbraum. Hilft dem Modell, bei Farbabweichungen zuverlässige Ergebnisse zu liefern. |
hsv_s | float | (0.0, 0.9) | Bereich der zufälligen Sättigungsaugmentierung im HSV-Farbraum. Simuliert unterschiedliche Lichtverhältnisse. |
hsv_v | float | (0.0, 0.9) | Bereich der zufälligen Helligkeitsaugmentierung. Hilft dem Modell, mit unterschiedlichen Belichtungsstufen umzugehen. |
degrees | float | (0.0, 45.0) | Maximale Rotationsaugmentierung in Grad. Hilft dem Modell, unabhängig von der Objektausrichtung zu werden. |
translate | float | (0.0, 0.9) | Maximale Verschiebungsaugmentierung als Anteil der Bildgröße. Erhöht die Robustheit gegenüber unterschiedlichen Objektpositionen. |
scale | float | (0.0, 0.95) | Bereich der zufälligen Skalierungsaugmentierung. Hilft dem Modell, Objekte unterschiedlicher Größe zu erkennen. |
shear | float | (0.0, 10.0) | Maximale Scherungsaugmentierung in Grad. Fügt den Trainingsbildern perspektivähnliche Verzerrungen hinzu. |
perspective | float | (0.0, 0.001) | Bereich der zufälligen Perspektivaugmentierung. Simuliert unterschiedliche Blickwinkel. |
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, unabhängig von der Objektrichtung zu werden. |
bgr | float | (0.0, 1.0) | Wahrscheinlichkeit für eine BGR-Augmentierung, bei der die Farbkanäle vertauscht werden. Kann die Unabhängigkeit von der Farbgebung verbessern. |
mosaic | float | (0.0, 1.0) | Wahrscheinlichkeit für eine Mosaikaugmentierung, bei der 4 Bilder kombiniert werden. Besonders nützlich für die Erkennung kleiner Objekte. |
mixup | float | (0.0, 1.0) | Wahrscheinlichkeit für eine MixUp-Augmentierung, bei der zwei Bilder miteinander vermischt werden. Kann die Robustheit des Modells verbessern. |
cutmix | float | (0.0, 1.0) | Wahrscheinlichkeit für eine CutMix-Augmentierung. Kombiniert Bildbereiche, wobei lokale Merkmale erhalten bleiben. |
copy_paste | float | (0.0, 1.0) | Im Modus flip der Anteil der geeigneten Objekte, die kopiert werden; im Modus mixup außerdem die Wahrscheinlichkeit, mit der die Augmentierung angewendet wird. |
close_mosaic | int | (0.0, 10.0) | Deaktiviert Mosaik in den letzten N Epochen, um das Training vor Abschluss zu stabilisieren. Wird als Fließkommazahl 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 Methode model.tune(), um die Klasse Tuner für das Hyperparameter-Tuning von YOLO26n auf COCO8 über 30 Epochen mit dem Optimierer AdamW einzusetzen. Für schnelleres Tuning werden Plotten, Checkpoint-Erstellung und Validierung übersprungen, außer in der letzten Epoche.
Dieses Beispiel dient ausschließlich der Veranschaulichung. Hyperparameter, die aus kurzen oder kleinen Tuning-Läufen hervorgehen, sind für das Training unter realen Bedingungen selten optimal. In der Praxis sollte das Tuning unter Bedingungen erfolgen, die dem vollständigen Training ähneln – einschließlich vergleichbarer Datensätze, Epochen und Augmentierungen –, damit die Ergebnisse zuverlässig und übertragbar sind. Schnelles Tuning kann Parameter begünstigen, die eine schnellere Konvergenz oder kurzfristige Verbesserungen bei der Validierung erzielen, sich aber nicht verallgemeinern lassen.
from ultralytics import YOLO
# YOLO-Modell initialisieren
model = YOLO("yolo26n.pt")
# Suchraum definieren
search_space = {
"lr0": (1e-5, 1e-2),
"degrees": (0.0, 45.0),
}
# Hyperparameter auf COCO8 über 30 Epochen optimieren
model.tune(
data="coco8.yaml",
epochs=30,
iterations=300,
optimizer="AdamW",
space=search_space,
plots=False,
save=False,
val=False,
)Unterbrochenes Hyperparameter-Tuning fortsetzen#
Du kannst eine unterbrochene Hyperparameter-Tuning-Sitzung fortsetzen, indem du resume=True übergibst. Optional kannst du das Verzeichnis name angeben, das unter runs/{task} verwendet wurde, um die Sitzung fortzusetzen. Ohne name wird das Verzeichnis mit dem Namen tune fortgesetzt. Dies ist der Standardname und nicht unbedingt der zuletzt ausgeführten Sitzung. Gib daher name für jeden Lauf an, den du mit einem benutzerdefinierten Namen gestartet hast. Außerdem musst du alle vorherigen Trainingsargumente angeben, darunter data, epochs, iterations und space.
from ultralytics import YOLO
# YOLO-Modell definieren
model = YOLO("yolo26n.pt")
# Suchraum definieren
search_space = {
"lr0": (1e-5, 1e-2),
"degrees": (0.0, 45.0),
}
# Vorherigen Lauf fortsetzen
results = model.tune(data="coco8.yaml", epochs=50, iterations=300, space=search_space, resume=True)
# Tuning-Lauf mit dem Namen 'tune_exp' fortsetzen
results = model.tune(data="coco8.yaml", epochs=50, iterations=300, space=search_space, name="tune_exp", resume=True)Ergebnisse#
Nach erfolgreichem Abschluss des Hyperparameter-Tunings erhältst du mehrere Dateien und Verzeichnisse mit den Ergebnissen des Tunings. Im Folgenden werden sie beschrieben:
Dateistruktur#
So sieht die Verzeichnisstruktur der Ergebnisse aus. Sweep-Verzeichnisse wie multitrain/ und multitrain-2/ enthalten einzelne Tuning-Iterationen, also jeweils ein Modell, das pro Datensatz mit einem Hyperparametersatz trainiert wurde. Für jeden Datensatz gibt es ein eigenes Unterverzeichnis. Um Speicherplatz zu sparen, löscht der Optimierer die Laufverzeichnisse der Datensätze für Iterationen, die nicht den aktuellen Bestwert erzielt haben. Das Verzeichnis tune/ enthält die Tuning-Ergebnisse aller einzelnen Modelltrainings:
runs/
└── detect/
├── multitrain/
│ └── coco8/
├── multitrain-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 des Tunings gefunden wurden. Du kannst diese Datei verwenden, um künftige Trainings mit diesen optimierten Einstellungen zu initialisieren.
-
Format: YAML
-
Verwendung: Hyperparameter-Ergebnisse
-
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#
Dieses Diagramm zeigt die Fitness in Abhängigkeit von der Anzahl der Iterationen. Damit kannst du nachvollziehen, wie sich der genetische Algorithmus im Laufe der Zeit entwickelt hat.
- Format: PNG
- Verwendung: Visualisierung der Leistung
Das Diagramm enthält:
- Eine Markierung pro Iteration und Datensatz. Ein Lauf mit einem Datensatz zeigt daher einen Punkt pro Iteration, ein Lauf mit mehreren Datensätzen einen Punkt pro Datensatz und Iteration.
- Eine gepunktete Linie für den „geglätteten Mittelwert“, berechnet durch eine Gaußsche Glättung (
sigma=3) der übergeordneten Fitnesswerte pro Iteration.
tune_results.ndjson#
Eine NDJSON-Datei mit ausführlichen Ergebnissen jeder Tuning-Iteration. Jede Zeile enthält ein JSON-Objekt mit der aggregierten Fitness, den optimierten Hyperparametern und den Kennzahlen pro Datensatz. Für das Tuning mit einem oder mehreren Datensätzen wird dasselbe Dateiformat verwendet.
- Format: NDJSON
- Verwendung: Ergebnisse der einzelnen Iterationen nachverfolgen.
- 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/multitrain/coco8",
"coco8-grayscale": "runs/detect/multitrain/coco8-grayscale"
}
}Der Wert fitness auf oberster Ebene ist der arithmetische Mittelwert der fitness-Werte der einzelnen Datensätze. Beim Tuning mit einem Datensatz enthält das datasets-Wörterbuch einen Eintrag, dessen fitness dem fitness-Wert auf oberster Ebene entspricht. Für jede abgeschlossene Iteration wird ein JSON-Objekt gespeichert. Die tatsächlichen Pfade save_dirs sind absolut und wurden oben aus Gründen der Lesbarkeit abgekürzt.
tune_scatter_plots.png#
Diese Datei enthält Streudiagramme aus tune_results.ndjson, mit denen du Beziehungen zwischen verschiedenen Hyperparametern und Leistungskennzahlen untersuchen kannst. Bei der Mutation wird der konfigurierte Wertebereich jedes Hyperparameters verwendet. Daher können sich Werte ausgehend von Standardeinstellungen mit dem Wert null wie degrees und shear weiterentwickeln.
- Format: PNG
- Verwendung: Explorative Datenanalyse
weights/#
Dieses Verzeichnis enthält die gespeicherten PyTorch-Modelle aus der Iteration mit der höchsten Fitness des Tuning-Laufs. 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 mit dem höchsten Fitnesswert.
Anhand dieser Ergebnisse kannst du fundiertere Entscheidungen für künftige Modelltrainings und Analysen treffen.
Fazit#
Das Optimieren von Hyperparametern in Ultralytics YOLO lässt sich einfach starten und ist unter der Haube leistungsstark: Ein genetischer Algorithmus nutzt eine fitnessgewichtete Auswahl und eine an den Wertebereich angepasste Mutation. Wenn du den in diesem Leitfaden beschriebenen Ablauf befolgst, kannst du dein Modell systematisch optimieren und die resultierende best_hyperparameters.yaml anschließend als Ausgangspunkt für künftige Trainingsläufe verwenden. Um die Optimierung auf parallele Versuche und fortgeschrittenere Suchalgorithmen auszuweiten, lies den Integrationsleitfaden zu Ray Tune oder führe verwaltete Jobs mit konfigurierbaren Hyperparametern und Echtzeit-Metriken auf der Ultralytics Platform mithilfe von Cloud-Training aus.
Für Einstellungen, die sich nicht über ein Argument festlegen lassen, etwa Lernraten pro Schicht oder eine benutzerdefinierte Fitnessmetrik, solltest du stattdessen den Trainer ableiten. Für einen tieferen Einblick kannst du den Quellcode der Klasse Tuner untersuchen. Bei Fragen oder Funktionswünschen kannst du dich über GitHub oder Discord an uns wenden.
Häufig gestellte Fragen#
Lege mit dem Parameter
lr0einen Anfangswert fest – übliche Werte reichen von0.001bis0.01– und lass ihn anschließend durch die Optimierung verändern, um den optimalen Wert zu finden. Das kannst du mit der Methodemodel.tune()automatisieren. Zum Beispiel:Beispielfrom ultralytics import YOLO # YOLO-Modell initialisieren model = YOLO("yolo26n.pt") # Hyperparameter auf COCO8 über 30 Epochen optimieren model.tune(data="coco8.yaml", epochs=30, iterations=300, optimizer="AdamW", plots=False, save=False, val=False)Weitere Einzelheiten findest du auf der Konfigurationsseite von Ultralytics YOLO.
Genetische Algorithmen in Ultralytics YOLO26 bieten eine zuverlässige Methode, den Hyperparameterraum zu durchsuchen und so die Modellleistung stark zu optimieren. Zu den wichtigsten Vorteilen zählen:
- Effiziente Suche: Die fitnessgewichtete Auswahl erhält leistungsstarke Konfigurationen, während die an den Wertebereich angepasste Mutation neue Kandidaten untersucht.
- 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: Die Algorithmen 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.
Wie lange die Hyperparameteroptimierung mit Ultralytics YOLO dauert, hängt vor allem von Faktoren wie der Größe des Datensatzes, der Komplexität der Modellarchitektur, der Anzahl der Iterationen und den verfügbaren Rechenressourcen ab. So kann die Optimierung von YOLO26n auf einem Datensatz wie COCO8 über 30 Epochen je nach Hardware mehrere Stunden bis Tage dauern.
Lege vorab ein klares Zeitbudget für die Optimierung fest, wie unter Vorbereitung auf die Hyperparameteroptimierung beschrieben. So kannst du den Einsatz der Ressourcen und deine Optimierungsziele aufeinander abstimmen.
Um die Modellleistung während der Hyperparameteroptimierung in YOLO zu bewerten, kannst du mehrere wichtige Metriken heranziehen:
- AP50: die durchschnittliche Präzision bei einem IoU-Schwellenwert von 0,50.
- F1-Wert: das harmonische Mittel aus Präzision und Trefferquote.
- Präzision und Trefferquote: Einzelmetriken, die die Genauigkeit des Modells bei der Erkennung echter positiver Fälle im Vergleich zu falsch positiven und falsch negativen Fällen 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 die fortgeschrittene Hyperparameteroptimierung mit Ray Tune integrieren. Ray Tune bietet ausgefeilte Suchalgorithmen wie Bayes'sche Optimierung und Hyperband sowie die Möglichkeit zur parallelen Ausführung, um die Optimierung zu beschleunigen.
Um Ray Tune mit YOLO26 zu verwenden, setze einfach den Parameter
use_ray=Trueim Aufruf der Methodemodel.tune(). Weitere Informationen und Beispiele findest du im Integrationsleitfaden zu Ray Tune.