Meet YOLO26: next-gen vision AI.

Link to this sectionModelltraining mit Ultralytics YOLO#

Ultralytics YOLO ecosystem and integrations

Link to this sectionEinführung#

Das Training eines Deep-Learning-Modells besteht darin, ihm Daten zuzuführen und seine Parameter anzupassen, damit es präzise Vorhersagen treffen kann. Der Train-Modus in Ultralytics YOLO26 ist für ein effektives und effizientes Training von Objekterkennungsmodellen konzipiert und nutzt die modernen Hardwarekapazitäten voll aus. Dieser Leitfaden deckt alle Details ab, die du benötigst, um mit dem Training deiner eigenen Modelle unter Verwendung der robusten Funktionen von YOLO26 zu beginnen.



Watch: How to Train a YOLO model on Your Custom Dataset in Google Colab.

Link to this sectionWarum Ultralytics YOLO für das Training wählen?#

Hier sind einige überzeugende Gründe, sich für den Train-Modus von YOLO26 zu entscheiden:

  • Effizienz: Hole das Beste aus deiner Hardware heraus, egal ob du ein System mit einer einzelnen GPU nutzt oder auf mehrere GPUs skalierst.
  • Vielseitigkeit: Trainiere auf benutzerdefinierten Datensätzen zusätzlich zu leicht verfügbaren wie COCO, VOC und ImageNet.
  • Benutzerfreundlichkeit: Einfache und dennoch leistungsstarke CLI- und Python-Schnittstellen für eine unkomplizierte Trainingserfahrung.
  • Hyperparameter-Flexibilität: Eine große Auswahl an anpassbaren Hyperparametern zur Feinabstimmung der Modellleistung. Für eine tiefere Kontrolle kannst du den Trainer selbst anpassen.
  • Cloud-Training: Trainiere auf Cloud-GPUs über die Ultralytics Platform mit Echtzeit-Metriken und automatischem Checkpointing.

Link to this sectionHauptfunktionen des Train-Modus#

Dies sind einige bemerkenswerte Funktionen des Train-Modus von YOLO26:

  • Automatischer Dataset-Download: Standard-Datensätze wie COCO, VOC und ImageNet werden bei der ersten Nutzung automatisch heruntergeladen.
  • Multi-GPU-Unterstützung: Skaliere deine Trainingsbemühungen nahtlos über mehrere GPUs, um den Prozess zu beschleunigen.
  • Hyperparameter-Konfiguration: Die Möglichkeit, Hyperparameter über YAML-Konfigurationsdateien oder CLI-Argumente zu ändern.
  • Visualisierung und Überwachung: Echtzeit-Verfolgung der Trainingsmetriken und Visualisierung des Lernprozesses für bessere Einblicke.
Tipp
  • YOLO26-Datensätze wie COCO, VOC, ImageNet und viele andere werden bei der ersten Nutzung automatisch heruntergeladen, d.h. yolo train data=coco.yaml

Link to this sectionAnwendungsbeispiele#

Trainiere YOLO26n auf dem COCO8-Datensatz für 100 Epochen bei einer Bildgröße von 640. Das Trainingsgerät kann über das device-Argument festgelegt werden. Wenn kein Argument übergeben wird, wird die GPU device=0 verwendet, sofern verfügbar; ansonsten wird device='cpu' genutzt. Siehe den Abschnitt Argumente unten für eine vollständige Liste der Trainingsargumente.

Windows Multi-Processing-Fehler

Unter Windows erhältst du möglicherweise einen RuntimeError, wenn du das Training als Skript startest. Füge einen if __name__ == "__main__": Block vor deinem Trainingscode hinzu, um dies zu beheben.

Beispiel für Single-GPU- und CPU-Training

Das Gerät wird automatisch bestimmt. Wenn eine GPU verfügbar ist, wird sie verwendet (Standard CUDA-Gerät 0); ansonsten beginnt das Training auf der CPU.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.yaml")  # build a new model from YAML
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo26n.yaml").load("yolo26n.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

Link to this sectionMulti-GPU-Training#

Multi-GPU-Training ermöglicht eine effizientere Nutzung der verfügbaren Hardware-Ressourcen, indem die Trainingslast auf mehrere GPUs verteilt wird. Diese Funktion ist sowohl über die Python-API als auch über die Befehlszeilenschnittstelle verfügbar. Um das Multi-GPU-Training zu aktivieren, gib die GPU-Geräte-IDs an, die du verwenden möchtest.

Beispiel für Multi-GPU-Training

Um mit 2 GPUs zu trainieren, verwenden die CUDA-Geräte 0 und 1 die folgenden Befehle. Erweitere dies nach Bedarf auf weitere GPUs.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)

# Train the model with 2 GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[0, 1])

# Train the model with the two most idle GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[-1, -1])
Multi-GPU-Training mit benutzerdefiniertem Code

Wenn du mehrere Geräte angibst (z. B. device=[0, 1]), startet Ultralytics intern eine neue Trainer-Instanz und führt torch.distributed.run im Hintergrund aus. Dies funktioniert nahtlos für die Standard-CLI-Nutzung und unveränderte Python-Skripte.

Wenn dein Skript jedoch benutzerdefinierte Komponenten enthält – wie einen benutzerdefinierten Trainer, Validator, Datensatz oder eine Augmentations-Pipeline –, können diese Objekte nicht automatisch serialisiert und an die DDP-Subprozesse übertragen werden. In diesem Fall musst du dein Skript direkt mit torch.distributed.run starten:

python -m torch.distributed.run --nproc_per_node 2 your_training_script.py

Link to this sectionTraining mit freien GPUs (Idle GPU Training)#

Das Training mit freien GPUs ermöglicht die automatische Auswahl der am wenigsten genutzten GPUs in Multi-GPU-Systemen und optimiert so die Ressourcennutzung ohne manuelle GPU-Auswahl. Diese Funktion identifiziert verfügbare GPUs anhand von Auslastungsmetriken und VRAM-Verfügbarkeit.

Beispiel für Training mit freien GPUs

Um die am wenigsten genutzte(n) GPU(s) automatisch für das Training auszuwählen und zu verwenden, nutze den -1 Geräteparameter. Dies ist besonders nützlich in gemeinsamen Rechenumgebungen oder auf Servern mit mehreren Benutzern.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)

# Train using the single most idle GPU
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=-1)

# Train using the two most idle GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[-1, -1])

Der Algorithmus zur automatischen Auswahl priorisiert GPUs mit:

  1. Niedrigeren aktuellen Auslastungsprozentsätzen
  2. Höherem verfügbaren Speicher (freier VRAM)
  3. Niedrigerer Temperatur und geringerem Stromverbrauch

Diese Funktion ist besonders wertvoll in gemeinsamen Rechenumgebungen oder wenn mehrere Trainingsjobs für verschiedene Modelle ausgeführt werden. Sie passt sich automatisch an sich ändernde Systembedingungen an und stellt so eine optimale Ressourcenzuweisung ohne manuellen Eingriff sicher.

Link to this sectionTraining mit Apple Silicon MPS#

Mit der in die Ultralytics YOLO-Modelle integrierten Unterstützung für Apple Silicon-Chips ist es nun möglich, deine Modelle auf Geräten zu trainieren, die das leistungsstarke Framework Metal Performance Shaders (MPS) nutzen. MPS bietet eine hochperformante Möglichkeit zur Ausführung von Rechen- und Bildverarbeitungsaufgaben auf dem benutzerdefinierten Silicon von Apple.

Um das Training auf Apple Silicon-Chips zu aktivieren, solltest du beim Starten des Trainingsprozesses 'mps' als dein Gerät angeben. Unten findest du ein Beispiel, wie du dies in Python und über die Befehlszeile tun kannst:

Beispiel für MPS-Training
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)

# Train the model with MPS
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="mps")

Während die Rechenleistung der Apple Silicon-Chips genutzt wird, ermöglicht dies eine effizientere Verarbeitung der Trainingsaufgaben. Für detailliertere Anleitungen und erweiterte Konfigurationsoptionen ziehe bitte die PyTorch MPS-Dokumentation zu Rate.

Link to this sectionUnterbrochene Trainings fortsetzen#

Das Fortsetzen des Trainings von einem zuvor gespeicherten Zustand ist eine entscheidende Funktion bei der Arbeit mit Deep-Learning-Modellen. Dies ist in verschiedenen Szenarien nützlich, z. B. wenn der Trainingsprozess unerwartet unterbrochen wurde oder wenn du das Training eines Modells mit neuen Daten oder für weitere Epochen fortsetzen möchtest.

Wenn das Training fortgesetzt wird, lädt Ultralytics YOLO die Gewichte des zuletzt gespeicherten Modells und stellt außerdem den Optimierer-Status, den Learning Rate-Scheduler und die Epochennummer wieder her. Dies ermöglicht es dir, den Trainingsprozess nahtlos dort fortzusetzen, wo er aufgehört hat.

You can easily resume training in Ultralytics YOLO by setting the resume argument to True when calling the train method, and specifying the path to the .pt file containing the partially trained model weights.

Unten findest du ein Beispiel, wie du ein unterbrochenes Training mit Python und über die Befehlszeile fortsetzen kannst:

Beispiel zum Fortsetzen des Trainings
from ultralytics import YOLO

# Load a model
model = YOLO("path/to/last.pt")  # load a partially trained model

# Resume training
results = model.train(resume=True)

Durch das Setzen von resume=True setzt die train-Funktion das Training dort fort, wo es aufgehört hat, wobei der in der 'path/to/last.pt'-Datei gespeicherte Zustand verwendet wird. Wenn das resume-Argument weggelassen oder auf False gesetzt wird, startet die train-Funktion eine neue Trainingssitzung.

Denke daran, dass Checkpoints standardmäßig am Ende jeder Epoche gespeichert werden, oder in festen Intervallen unter Verwendung des save_period-Arguments, sodass du mindestens 1 Epoche abschließen musst, um einen Trainingslauf fortzusetzen.

Link to this sectionTrainingseinstellungen#

Die Trainingseinstellungen für YOLO-Modelle umfassen verschiedene Hyperparameter und Konfigurationen, die während des Trainingsprozesses verwendet werden. Diese Einstellungen beeinflussen die Leistung, Geschwindigkeit und Genauigkeit des Modells. Zu den wichtigsten Trainingseinstellungen gehören Batch-Größe, Learning Rate, Momentum und Weight Decay. Zusätzlich können die Wahl des Optimierers, der Loss Function und die Zusammensetzung des Trainingsdatensatzes den Trainingsprozess beeinflussen. Eine sorgfältige Abstimmung und das Experimentieren mit diesen Einstellungen sind entscheidend für die Optimierung der Leistung.

Link to this sectionMuSGD-Optimierer#

In YOLO26 ist MuSGD ein hybrider Optimierer, der Standard-SGD-Updates mit orthogonalisierten Muon-Updates kombiniert.

Er wird für längere YOLO26-Trainingsläufe und größere Datensätze empfohlen, bei denen orthogonalisierte Muon-Updates zur Stabilisierung der Optimierung beitragen können.

Nur Parameter mit param.ndim >= 2 (wie etwa Faltungsgewichte) erhalten das Muon-Update zusammen mit SGD, während niedrigdimensionale Parameter wie Batch-Normalisierungsschichten und Bias-Terme beim Standard-SGD verbleiben.

Wenn optimizer=auto verwendet wird, wählt Ultralytics automatisch MuSGD für längere Trainingsläufe (typischerweise wenn Iterationen > 10000). Bei kürzeren Läufen greift der Trainer auf AdamW zurück.

Beispiel für die Verwendung:

yolo train model=yolo26n.pt data=coco8.yaml optimizer=MuSGD

Siehe die Implementierung in ultralytics/optim/muon.py und die Logik zur automatischen Optimierer-Auswahl in BaseTrainer.build_optimizer.

ArgumentTypStandardBeschreibung
modelstrNoneGibt die Modelldatei für das Training an. Akzeptiert einen Pfad zu einem vortrainierten .pt-Modell oder einer .yaml-Konfigurationsdatei. Essenziell für die Definition der Modellstruktur oder die Initialisierung der Gewichte.
datastrNonePfad zur Dataset-Konfigurationsdatei (z. B. coco8.yaml). Diese Datei enthält datensatzspezifische Parameter, einschließlich Pfaden zu Trainings- und Validierungsdaten, Klassennamen und Anzahl der Klassen.
epochsint100Gesamtzahl der Trainingsepochen. Jede Epoche stellt einen vollständigen Durchlauf durch den gesamten Datensatz dar. Die Anpassung dieses Wertes kann die Trainingsdauer und die Modellleistung beeinflussen.
timefloatNoneMaximale Trainingszeit in Stunden. Falls gesetzt, überschreibt dies das epochs-Argument, wodurch das Training nach der angegebenen Dauer automatisch gestoppt wird. Nützlich für zeiteingeschränkte Trainingsszenarien.
patienceint100Anzahl der Epochen, die ohne Verbesserung der Validierungsmetriken gewartet wird, bevor das Training frühzeitig beendet wird. Hilft, Overfitting zu verhindern, indem das Training gestoppt wird, wenn die Leistung stagniert.
batchint oder float16Batch-Größe, mit drei Modi: als Ganzzahl gesetzt (z. B. batch=16), Auto-Modus für 60% GPU-Speicherauslastung (batch=-1) oder Auto-Modus mit spezifiziertem Auslastungsanteil (batch=0.70).
imgszint640Zielbildgröße für das Training. Bilder werden auf Quadrate mit Seitenlängen entsprechend dem angegebenen Wert skaliert (wenn rect=False), wobei das Seitenverhältnis für YOLO-Modelle beibehalten wird, jedoch nicht für RT-DETR. Beeinflusst die Genauigkeit und die Rechenkomplexität des Modells.
saveboolTrueAktiviert das Speichern von Trainings-Checkpoints und den endgültigen Modellgewichten. Nützlich zum Fortsetzen des Trainings oder für das Modell-Deployment.
save_periodint-1Häufigkeit des Speicherns von Modell-Checkpoints, angegeben in Epochen. Ein Wert von -1 deaktiviert diese Funktion. Nützlich zum Speichern von Zwischenmodellen während langer Trainingssitzungen.
cacheboolFalseAktiviert das Caching von Datensatzbildern im Arbeitsspeicher (True/ram), auf der Festplatte (disk) oder deaktiviert es (False). Verbessert die Trainingsgeschwindigkeit durch Reduzierung von Festplatten-I/O auf Kosten eines erhöhten Speicherverbrauchs.
deviceint oder str oder listNoneGibt das/die Rechengerät(e) für das Training an: eine einzelne GPU (device=0), mehrere GPUs (device=[0,1]), CPU (device=cpu), MPS für Apple Silicon (device=mps), Huawei Ascend NPU (device=npu oder device=npu:0), oder automatische Auswahl der freiesten GPU (device=-1) oder mehrerer freier GPUs (device=[-1,-1])
workersint8Anzahl der Worker-Threads für das Laden von Daten (pro RANK bei Multi-GPU-Training). Beeinflusst die Geschwindigkeit der Datenvorverarbeitung und Einspeisung in das Modell, besonders nützlich bei Multi-GPU-Setups.
projectstrNoneName des Projektverzeichnisses, in dem die Trainingsausgaben gespeichert werden. Ermöglicht eine organisierte Speicherung verschiedener Experimente.
namestrNoneName des Trainingslaufs. Wird verwendet, um ein Unterverzeichnis im Projektordner zu erstellen, in dem Trainingsprotokolle und Ausgaben gespeichert werden.
exist_okboolFalseWenn True, erlaubt das Überschreiben eines existierenden Projekt-/Namensverzeichnisses. Nützlich für iterative Experimente, ohne vorherige Ausgaben manuell löschen zu müssen.
pretrainedbool oder strTrueBestimmt, ob das Training mit vortrainierten Gewichten begonnen werden soll. Kann ein boolescher Wert oder ein Pfad als String zu den zu ladenden Gewichten sein. pretrained=False trainiert mit zufällig initialisierten Gewichten unter Beibehaltung der Modellarchitektur.
optimizerstr'auto'Wahl des Optimierers für das Training. Optionen beinhalten SGD, MuSGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp oder auto für automatische Auswahl basierend auf der Modellkonfiguration. Beeinflusst Konvergenzgeschwindigkeit und Stabilität.
seedint0Legt den Zufallswert (Seed) für das Training fest, was die Reproduzierbarkeit der Ergebnisse über Durchläufe mit denselben Konfigurationen hinweg sicherstellt.
deterministicboolTrueErzwingt die Verwendung deterministischer Algorithmen, was die Reproduzierbarkeit sicherstellt, aber die Leistung und Geschwindigkeit aufgrund der Beschränkung auf nicht-deterministische Algorithmen beeinträchtigen kann.
verboseboolTrueAktiviert die ausführliche Ausgabe während des Trainings und zeigt Fortschrittsbalken, Metriken pro Epoche sowie zusätzliche Trainingsinformationen in der Konsole an.
single_clsboolFalseBehandelt alle Klassen in Datensätzen mit mehreren Klassen als eine einzige Klasse während des Trainings. Nützlich für binäre Klassifizierungsaufgaben oder wenn der Fokus eher auf dem Vorhandensein von Objekten als auf der Klassifizierung liegt.
classeslist[int]NoneGibt eine Liste von Klassen-IDs an, die trainiert werden sollen. Nützlich zum Filtern und zur Konzentration auf bestimmte Klassen während des Trainings.
rectboolFalseAktiviert die Strategie der minimalen Auffüllung (Padding) – Bilder in einem Batch werden minimal aufgefüllt, um eine gemeinsame Größe zu erreichen, wobei die längste Seite imgsz entspricht. Dies kann die Effizienz und Geschwindigkeit verbessern, kann aber die Genauigkeit des Modells beeinflussen.
multi_scalefloat0.0Variiert imgsz für jeden Batch zufällig um +/- multi_scale (z. B. 0.25 -> 0.75x bis 1.25x) und rundet auf Vielfache des Modell-Strides; 0.0 deaktiviert das Multi-Scale-Training.
cos_lrboolFalseVerwendet einen Kosinus-Lernraten-Scheduler, der die Lernrate über die Epochen hinweg nach einer Kosinus-Kurve anpasst. Dies hilft bei der Steuerung der Lernrate für eine bessere Konvergenz.
close_mosaicint10Deaktiviert die Mosaic-Datenaugmentierung in den letzten N Epochen, um das Training vor dem Abschluss zu stabilisieren. Die Einstellung auf 0 deaktiviert diese Funktion.
resumeboolFalseSetzt das Training vom zuletzt gespeicherten Checkpoint fort. Lädt automatisch Modellgewichte, Optimiererzustand und Epochenanzahl, um das Training nahtlos fortzusetzen.
ampboolTrueAktiviert das Training mit automatischer gemischter Präzision (AMP), was den Speicherverbrauch reduziert und das Training möglicherweise beschleunigt, bei minimalen Auswirkungen auf die Genauigkeit.
fractionfloat1.0Gibt den Teil des Datensatzes an, der für das Training verwendet werden soll. Ermöglicht das Training auf einer Teilmenge des gesamten Datensatzes, was für Experimente oder bei begrenzten Ressourcen nützlich ist.
profileboolFalseAktiviert die Profilierung von ONNX- und TensorRT-Geschwindigkeiten während des Trainings, was für die Optimierung des Modelleinsatzes nützlich ist.
freezeint oder listNoneFriert die ersten N Schichten des Modells oder bestimmte Schichten nach Index ein, wodurch die Anzahl der trainierbaren Parameter reduziert wird. Nützlich für das Fine-Tuning oder Transfer Learning.
lr0float0.01Anfängliche Lernrate (z. B. SGD=1E-2, Adam=1E-3). Die Anpassung dieses Wertes ist entscheidend für den Optimierungsprozess und beeinflusst, wie schnell die Modellgewichte aktualisiert werden.
lrffloat0.01Finale Lernrate als Bruchteil der anfänglichen Rate = (lr0 * lrf), die in Verbindung mit Schedulern verwendet wird, um die Lernrate über die Zeit anzupassen.
momentumfloat0.937Momentum-Faktor für SGD oder beta1 für Adam-Optimierer, der die Einbeziehung früherer Gradienten in das aktuelle Update beeinflusst.
weight_decayfloat0.0005L2-Regularisierungs-Term, der große Gewichte bestraft, um Overfitting zu verhindern.
warmup_epochsfloat3.0Anzahl der Epochen für das Lernraten-Warmup, wobei die Lernrate schrittweise von einem niedrigen Wert auf die anfängliche Lernrate erhöht wird, um das Training frühzeitig zu stabilisieren.
warmup_momentumfloat0.8Anfängliches Momentum für die Warmup-Phase, das sich über den Warmup-Zeitraum hinweg schrittweise an das eingestellte Momentum anpasst.
warmup_bias_lrfloat0.1Lernrate für Bias-Parameter während der Warmup-Phase, die dabei hilft, das Modelltraining in den anfänglichen Epochen zu stabilisieren.
boxfloat7.5Gewichtung der Box-Loss-Komponente in der Verlustfunktion, die beeinflusst, wie viel Wert auf die genaue Vorhersage der Bounding-Box-Koordinaten gelegt wird.
clsfloat0.5Gewichtung des Klassifizierungsverlusts in der gesamten Verlustfunktion, was die Bedeutung einer korrekten Klassenvorhersage im Verhältnis zu anderen Komponenten beeinflusst.
cls_pwfloat0.0Potenz für die Klassen-Gewichtung zur Handhabung von Klassenungleichgewichten unter Verwendung der inversen Klassenhäufigkeit. 0.0 deaktiviert die Klassengewichtung, 1.0 wendet die volle inverse Häufigkeitsgewichtung an. Werte zwischen 0 und 1 bieten eine teilweise Gewichtung.
dflfloat1.5Gewichtung des Distribution Focal Loss, der in bestimmten YOLO-Versionen für die fein abgestimmte Klassifizierung verwendet wird.
posefloat12.0Gewichtung des Pose-Loss in Modellen, die für die Pose-Schätzung trainiert wurden, was den Fokus auf die genaue Vorhersage von Pose-Keypoints beeinflusst.
kobjfloat1.0Gewichtung des Keypoint-Objectness-Loss in Pose-Schätzungsmodellen, um das Vertrauen der Erkennung mit der Pose-Genauigkeit abzugleichen.
rlefloat1.0Gewichtung des Residual-Log-Likelihood-Estimation-Loss in Pose-Schätzungsmodellen, was die Präzision der Keypoint-Lokalisierung beeinflusst.
anglefloat1.0Gewichtung des Winkel-Loss in OBB-Modellen, was die Präzision der Vorhersagen für den Winkel von orientierten Bounding-Boxen beeinflusst.
nbsint64Nominale Batch-Größe für die Normalisierung des Verlusts.
overlap_maskboolTrueBestimmt, ob Objektmasken für das Training zu einer einzigen Maske zusammengeführt oder für jedes Objekt separat gehalten werden sollen. Bei einer Überlappung wird die kleinere Maske beim Zusammenführen über die größere Maske gelegt.
mask_ratioint4Downsampling-Verhältnis für Segmentierungsmasken, was die Auflösung der während des Trainings verwendeten Masken beeinflusst.
dropoutfloat0.0Dropout-Rate zur Regularisierung bei Klassifizierungsaufgaben, um Overfitting durch zufälliges Auslassen von Einheiten während des Trainings zu verhindern.
valboolTrueAktiviert die Validierung während des Trainings, was eine regelmäßige Bewertung der Modellleistung auf einem separaten Datensatz ermöglicht.
plotsboolTrueGeneriert und speichert Diagramme von Trainings- und Validierungsmetriken sowie Vorhersagebeispiele, die visuelle Einblicke in die Modellleistung und den Lernfortschritt bieten.
compilebool oder strFalseAktiviert die PyTorch 2.x torch.compile Graph-Kompilierung mit backend='inductor'. Akzeptiert True"default", False → deaktiviert, oder einen String-Modus wie "default", "reduce-overhead", "max-autotune-no-cudagraphs". Fällt bei Nichtunterstützung mit einer Warnung auf Eager zurück.
max_detint300Gibt die maximale Anzahl von Objekten an, die während der Validierungsphase des Trainings beibehalten werden.
Hinweis zu Batch-Größen-Einstellungen

Das Argument batch kann auf drei Arten konfiguriert werden:

  • Feste Batch-Größe: Setze einen Ganzzahlwert (z. B. batch=16), der die Anzahl der Bilder pro Batch direkt festlegt.
  • Auto-Modus (60% GPU-Speicher): Verwende batch=-1, um die Batch-Größe automatisch auf eine ungefähre Auslastung von 60% des CUDA-Speichers einzustellen.
  • Auto-Modus mit Auslastungs-Anteil: Setze einen Bruchteil-Wert (z. B. batch=0.70), um die Batch-Größe basierend auf dem angegebenen Anteil der GPU-Speicherauslastung anzupassen.
  • OOM Auto-Retry: Wenn während der ersten Epoche ein CUDA-Speichermangel-Fehler auftritt, halbiert der Trainer automatisch die Batch-Größe und versucht es erneut (bis zu 3 Mal). Dies gilt nur für das Single-GPU-Training; beim Multi-GPU-Training (DDP) wird der Fehler sofort ausgelöst.

Link to this sectionAugmentierungs-Einstellungen und Hyperparameter#

Augmentierungstechniken sind entscheidend für die Verbesserung der Robustheit und Leistung von YOLO-Modellen, indem sie Variabilität in die Trainingsdaten einbringen und dem Modell helfen, besser auf unbekannte Daten zu generalisieren. Die folgende Tabelle erläutert Zweck und Wirkung jedes Augmentierungs-Arguments:

ArgumentTypStandardUnterstützte AufgabenBereichBeschreibung
hsv_hfloat0.015detect, segment, pose, obb, classify0.0 - 1.0Passt den Farbton (Hue) des Bildes um einen Bruchteil des Farbkreises an und führt so Farbvariabilität ein. Hilft dem Modell, über verschiedene Lichtverhältnisse hinweg zu generalisieren.
hsv_sfloat0.7detect, segment, pose, obb, classify0.0 - 1.0Ändert die Sättigung (Saturation) des Bildes um einen Bruchteil und beeinflusst so die Intensität der Farben. Nützlich zur Simulation verschiedener Umgebungsbedingungen.
hsv_vfloat0.4detect, segment, pose, obb, classify0.0 - 1.0Modifiziert den Wert (Helligkeit) des Bildes um einen Bruchteil und hilft dem Modell, unter verschiedenen Lichtverhältnissen gut zu funktionieren.
degreesfloat0detect, segment, pose, obb0.0 - 180Dreht das Bild zufällig innerhalb des angegebenen Gradbereichs, was die Fähigkeit des Modells verbessert, Objekte in verschiedenen Ausrichtungen zu erkennen.
translatefloat0.1detect, segment, pose, obb0.0 - 1.0Verschiebt das Bild horizontal und vertikal um einen Bruchteil der Bildgröße, was dabei hilft, teilweise sichtbare Objekte erkennen zu lernen.
scalefloat0.5detect, segment, pose, obb, classify0 - 1Skaliert das Bild um einen Verstärkungsfaktor und simuliert so Objekte in unterschiedlichen Entfernungen von der Kamera.
shearfloat0detect, segment, pose, obb-180 - +180Schert das Bild um einen angegebenen Grad, was den Effekt nachahmt, dass Objekte aus verschiedenen Winkeln betrachtet werden.
perspectivefloat0detect, segment, pose, obb0.0 - 0.001Wendet eine zufällige perspektivische Transformation auf das Bild an und verbessert so das Verständnis des Modells für Objekte im 3D-Raum.
flipudfloat0detect, segment, pose, obb, classify0.0 - 1.0Spiegelt das Bild mit der angegebenen Wahrscheinlichkeit vertikal, was die Datenvariabilität erhöht, ohne die Eigenschaften des Objekts zu beeinflussen.
fliplrfloat0.5detect, segment, pose, obb, classify0.0 - 1.0Spiegelt das Bild mit der angegebenen Wahrscheinlichkeit horizontal, was nützlich ist, um symmetrische Objekte zu erlernen und die Vielfalt des Datensatzes zu erhöhen.
bgrfloat0detect, segment, pose, obb0.0 - 1.0Tauscht die Bildkanäle mit der angegebenen Wahrscheinlichkeit von RGB auf BGR, was nützlich ist, um die Robustheit gegenüber falscher Kanalreihenfolge zu erhöhen.
mosaicfloat1detect, segment, pose, obb0.0 - 1.0Kombiniert vier Trainingsbilder zu einem und simuliert verschiedene Szenenzusammensetzungen und Objektinteraktionen. Sehr effektiv für das Verständnis komplexer Szenen.
mixupfloat0detect, segment, pose, obb0.0 - 1.0Mischt zwei Bilder und deren Labels zu einem zusammengesetzten Bild. Verbessert die Generalisierungsfähigkeit des Modells durch die Einführung von Label-Rauschen und visueller Variabilität.
cutmixfloat0detect, segment, pose, obb0.0 - 1.0Kombiniert Teile von zwei Bildern, was eine teilweise Vermischung unter Beibehaltung klarer Regionen erzeugt. Erhöht die Modellrobustheit durch die Schaffung von Verdeckungsszenarien.
copy_pastefloat0segment0.0 - 1.0Kopiert und fügt Objekte über Bilder hinweg ein, um die Anzahl der Objektinstanzen zu erhöhen.
copy_paste_modestrflipsegment-Legt die zu verwendende copy-paste-Strategie fest. Zu den Optionen gehören 'flip' und 'mixup'.
auto_augmentstrrandaugmentclassify-Wendet eine vordefinierte Augmentierungsrichtlinie ('randaugment', 'autoaugment' oder 'augmix') an, um die Modellleistung durch visuelle Vielfalt zu verbessern.
erasingfloat0.4classify0.0 - 1.0Löscht während des Trainings zufällig Regionen im Bild, um das Modell dazu zu ermutigen, sich auf weniger offensichtliche Merkmale zu konzentrieren.
augmentationslist``detect, segment, pose, obb-Benutzerdefinierte Albumentations-Transformationen für fortgeschrittene Datenaugmentierung (nur Python API). Akzeptiert eine Liste von Transformations-Objekten für spezielle Augmentierungsanforderungen.

Diese Einstellungen können angepasst werden, um den spezifischen Anforderungen des Datensatzes und der anstehenden Aufgabe gerecht zu werden. Das Experimentieren mit verschiedenen Werten kann dabei helfen, die optimale Augmentierungsstrategie zu finden, die zur besten Modellleistung führt.

Info

Weitere Informationen zu Trainings-Augmentierungsoperationen findest du im Referenzbereich.

Link to this sectionProtokollierung#

Beim Training eines YOLO26-Modells kann es wertvoll sein, die Leistung des Modells im Zeitverlauf zu verfolgen. Hier kommt die Protokollierung ins Spiel. Ultralytics YOLO bietet Unterstützung für drei Arten von Loggern - Comet, ClearML und TensorBoard.

Um einen Logger zu verwenden, wähle ihn im Dropdown-Menü im obigen Code-Snippet aus und führe ihn aus. Der gewählte Logger wird installiert und initialisiert.

Link to this sectionComet#

Comet ist eine Plattform, die es Datenwissenschaftlern und Entwicklern ermöglicht, Experimente und Modelle zu verfolgen, zu vergleichen, zu erklären und zu optimieren. Sie bietet Funktionen wie Echtzeit-Metriken, Code-Diffs und die Nachverfolgung von Hyperparametern.

So verwendest du Comet:

Beispiel
# pip install comet_ml
import comet_ml

comet_ml.init()

Denke daran, dich auf deren Website bei deinem Comet-Konto anzumelden und deinen API-Schlüssel zu erhalten. Du musst diesen zu deinen Umgebungsvariablen oder deinem Skript hinzufügen, um deine Experimente zu protokollieren.

Link to this sectionClearML#

ClearML ist eine Open-Source-Plattform, die das Verfolgen von Experimenten automatisiert und bei der effizienten gemeinsamen Nutzung von Ressourcen hilft. Sie wurde entwickelt, um Teams dabei zu helfen, ihre ML-Arbeit effizienter zu verwalten, auszuführen und zu reproduzieren.

So verwendest du ClearML:

Beispiel
# pip install clearml
import clearml

clearml.browser_login()

Nachdem du dieses Skript ausgeführt hast, musst du dich im Browser bei deinem ClearML-Konto anmelden und deine Sitzung authentifizieren.

Link to this sectionTensorBoard#

TensorBoard ist ein Visualisierungs-Toolkit für TensorFlow. Es ermöglicht dir, deinen TensorFlow-Graph zu visualisieren, quantitative Metriken über die Ausführung deines Graphen zu plotten und zusätzliche Daten wie Bilder anzuzeigen, die ihn durchlaufen.

So verwendest du TensorBoard in Google Colab:

Beispiel
load_ext tensorboard
tensorboard --logdir ultralytics/runs # replace with 'runs' directory

Um TensorBoard lokal zu verwenden, führe den unten stehenden Befehl aus und zeige die Ergebnisse unter localhost:6006 an.

Beispiel
tensorboard --logdir ultralytics/runs # replace with 'runs' directory

Dadurch wird TensorBoard geladen und auf das Verzeichnis verwiesen, in dem deine Trainingsprotokolle gespeichert sind.

Nachdem du deinen Logger eingerichtet hast, kannst du mit dem Training deines Modells fortfahren. Alle Trainingsmetriken werden automatisch auf deiner gewählten Plattform protokolliert, und du kannst auf diese Protokolle zugreifen, um die Leistung deines Modells im Zeitverlauf zu überwachen, verschiedene Modelle zu vergleichen und Verbesserungsbereiche zu identifizieren.

Link to this sectionFAQ#

Link to this sectionKann ich ohne eine lokale GPU trainieren?#

Ja. Die Ultralytics Platform unterstützt Cloud-Training mit kostenlosen Credits für den Einstieg. Lade deinen Datensatz hoch, wähle ein Modell und eine GPU aus und trainiere direkt aus dem Browser. Weitere Details findest du im Leitfaden für Cloud-Training.

Link to this sectionWie trainiere ich ein Modell zur Objekterkennung mit Ultralytics YOLO26?#

Um ein Objekterkennungsmodell mit Ultralytics YOLO26 zu trainieren, kannst du entweder die Python API oder das CLI verwenden. Nachfolgend findest du ein Beispiel für beides:

Beispiel für Single-GPU- und CPU-Training
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

Weitere Details findest du im Abschnitt Trainings-Einstellungen.

Link to this sectionWas sind die Hauptmerkmale des Trainingsmodus von Ultralytics YOLO26?#

Die Hauptmerkmale des Trainingsmodus von Ultralytics YOLO26 umfassen:

  • Automatischer Datensatz-Download: Lädt automatisch Standard-Datensätze wie COCO, VOC und ImageNet herunter.
  • Multi-GPU-Unterstützung: Skaliere das Training über mehrere GPUs hinweg für eine schnellere Verarbeitung.
  • Hyperparameter-Konfiguration: Passe Hyperparameter über YAML-Dateien oder CLI-Argumente an.
  • Visualisierung und Überwachung: Echtzeit-Verfolgung von Trainingsmetriken für bessere Einblicke.

Diese Funktionen machen das Training effizient und anpassbar an deine Bedürfnisse. Weitere Details findest du im Abschnitt Hauptmerkmale des Trainingsmodus.

Link to this sectionWie nehme ich das Training nach einer unterbrochenen Sitzung in Ultralytics YOLO26 wieder auf?#

Um das Training nach einer unterbrochenen Sitzung wieder aufzunehmen, setze das Argument resume auf True und gib den Pfad zum zuletzt gespeicherten Checkpoint an.

Beispiel zum Fortsetzen des Trainings
from ultralytics import YOLO

# Load the partially trained model
model = YOLO("path/to/last.pt")

# Resume training
results = model.train(resume=True)

Überprüfe den Abschnitt über Wiederaufnahme unterbrochener Trainings für weitere Informationen.

Link to this sectionWie trainiere ich ein Modell auf einem unausgewogenen Datensatz?#

Klassenungleichgewicht tritt auf, wenn einige Klassen in deinen Trainingsdaten deutlich weniger Beispiele aufweisen als andere. Dies kann dazu führen, dass das Modell bei seltenen Klassen schlecht abschneidet. Ultralytics YOLO unterstützt Klassen-Gewichtung über das cls_pw-Argument, um dieses Problem anzugehen.

Das cls_pw-Argument steuert die Gewichtung der Klasse basierend auf der inversen Klassenhäufigkeit:

  • cls_pw=0.0 (Standard): Deaktiviert die Klassengewichtung
  • cls_pw=1.0: Wendet die vollständige inverse Häufigkeitsgewichtung an
  • Werte zwischen 0.0 und 1.0: Bieten eine teilweise Gewichtung für mäßiges Ungleichgewicht

Die Klassengewichte werden als (1.0 / class_counts) ^ cls_pw berechnet und so normalisiert, dass ihr Mittelwert 1.0 entspricht.

Training auf einem unausgewogenen Datensatz
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n.pt")

# Train with full class weighting for severely imbalanced data
results = model.train(data="custom.yaml", epochs=100, imgsz=640, cls_pw=1.0)

# Or use partial weighting (0.25) for moderate imbalance
results = model.train(data="custom.yaml", epochs=100, imgsz=640, cls_pw=0.25)
Tipp

Beginne mit cls_pw=0.25 für mäßig unausgewogene Datensätze und erhöhe den Wert auf 1.0, wenn die seltenen Klassen weiterhin unterdurchschnittlich abschneiden. Du kannst die berechneten Klassengewichte in den Trainingsprotokollen überprüfen, um die Gewichtsverteilung zu verifizieren.

Link to this sectionKann ich YOLO26-Modelle auf Apple Silicon Chips trainieren?#

Ja, Ultralytics YOLO26 unterstützt das Training auf Apple Silicon Chips unter Nutzung des Metal Performance Shaders (MPS) Frameworks. Gib 'mps' als dein Trainingsgerät an.

Beispiel für MPS-Training
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n.pt")

# Train the model on Apple silicon chip (M1/M2/M3/M4)
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="mps")

Weitere Details findest du im Abschnitt Apple Silicon MPS Training.

Link to this sectionWas sind die gängigen Trainingseinstellungen und wie konfiguriere ich sie?#

Ultralytics YOLO26 ermöglicht es dir, eine Vielzahl von Trainingseinstellungen wie Batch-Größe, Lernrate, Epochen und mehr über Argumente zu konfigurieren. Hier ist ein kurzer Überblick:

ArgumentStandardBeschreibung
modelNonePfad zur Modelldatei für das Training.
dataNonePfad zur Datensatz-Konfigurationsdatei (z. B. coco8.yaml).
epochs100Gesamtzahl der Trainingsepochen.
batch16Batch-Größe, einstellbar als Ganzzahl oder Auto-Modus.
imgsz640Zielbildgröße für das Training.
deviceNoneRechengerät(e) für das Training wie cpu, 0, 0,1 oder mps.
saveTrueAktiviert das Speichern von Trainings-Checkpoints und endgültigen Modellgewichten.

Für einen ausführlichen Leitfaden zu den Trainingseinstellungen sieh dir den Abschnitt Trainings-Einstellungen an.

Kommentare