Zum Inhalt springen

Modelltraining mit Ultralytics YOLO

Ultralytics YOLO Ökosystem und Integrationen

Einführung

Beim Training eines Deep-Learning-Modells werden Daten eingegeben und die Parameter so angepasst, dass das Modell genaue Vorhersagen machen kann. Der Trainingsmodus in Ultralytics YOLO11 wurde für ein effektives und effizientes Training von Objekterkennungsmodellen entwickelt und nutzt die Möglichkeiten moderner Hardware voll aus. Dieser Leitfaden soll alle Details abdecken, die Sie benötigen, um mit dem Training Ihrer eigenen Modelle unter Verwendung der robusten Funktionen von YOLO11 zu beginnen.



Beobachten: So trainieren Sie ein YOLO Modell auf Ihrem eigenen Datensatz in Google Colab.

Warum Ultralytics YOLO für Schulungen wählen?

Hier sind einige überzeugende Gründe, sich für den Zugmodus von YOLO11 zu entscheiden:

  • Effizienz: Holen Sie das Beste aus Ihrer Hardware heraus, ganz gleich, ob Sie mit einem einzigenGPU Setup arbeiten oder über mehrere GPUs skalieren.
  • Vielseitigkeit: Trainieren Sie auf benutzerdefinierten Datensätzen zusätzlich zu den bereits verfügbaren wie COCO, VOC und ImageNet.
  • Benutzerfreundlich: Einfache, aber leistungsstarke Benutzeroberflächen CLI und Python sorgen für ein unkompliziertes Training.
  • Flexibilität der Hyperparameter: Eine breite Palette von anpassbaren Hyperparametern zur Feinabstimmung der Modellleistung.

Hauptmerkmale des Zugmodus

Im Folgenden finden Sie einige bemerkenswerte Merkmale des Zugmodus von YOLO11:

  • Automatischer Datensatz-Download: Standarddatensätze wie COCO, VOC und ImageNet werden bei der ersten Verwendung automatisch heruntergeladen.
  • Multi-GPU Unterstützung: Skalieren Sie Ihre Schulungsmaßnahmen nahtlos auf 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-Tracking von Trainingsmetriken und Visualisierung des Lernprozesses für bessere Einblicke.

Tipp

  • YOLO11 Datensätze wie COCO, VOC, ImageNet und viele andere werden bei der ersten Verwendung automatisch heruntergeladen, d. h. yolo train data=coco.yaml

Beispiele für die Verwendung

Trainieren Sie YOLO11n mit dem COCO8-Datensatz für 100 Epochen bei Bildgröße 640. Das Trainingsgerät kann mit der Option device Argument. Wenn kein Argument übergeben wird GPU device=0 wird verwendet, falls vorhanden, ansonsten device='cpu' verwendet werden. Eine vollständige Liste der Trainingsargumente finden Sie im Abschnitt Argumente weiter unten.

Single-GPU und CPU Schulungsbeispiel

Das Gerät wird automatisch ermittelt. Wenn ein GPU verfügbar ist, wird es verwendet, andernfalls beginnt das Training auf CPU.

from ultralytics import YOLO

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

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo detect train data=coco8.yaml model=yolo11n.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640

# Build a new model from YAML, transfer pretrained weights to it and start training
yolo detect train data=coco8.yaml model=yolo11n.yaml pretrained=yolo11n.pt epochs=100 imgsz=640

Multi-GPU Ausbildung

Das Training mit mehrerenGPU 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 Training mit mehrerenGPU zu aktivieren, geben Sie die GPU Geräte-IDs an, die Sie verwenden möchten.

Multi-GPU Schulungsbeispiel

Um mit 2 GPUs zu trainieren, CUDA Geräte 0 und 1, verwenden Sie die folgenden Befehle. Erweitern Sie bei Bedarf auf weitere GPUs.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.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])
# Start training from a pretrained *.pt model using GPUs 0 and 1
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=0,1

Apple Silizium MPS Schulung

Mit der Unterstützung für Apple-Silizium-Chips, die in die Ultralytics YOLO Modelle integriert sind, ist es nun möglich, Ihre Modelle auf Geräten zu trainieren, die das leistungsstarke Metal Performance Shaders (MPS) Framework nutzen. MPS bietet eine hochleistungsfähige Möglichkeit zur Ausführung von Berechnungen und Bildverarbeitungsaufgaben auf Apples kundenspezifischem Silizium.

Um das Training auf Apple-Silizium-Chips zu aktivieren, sollten Sie 'mps' als Ihr Gerät angeben, wenn Sie den Trainingsprozess einleiten. Im Folgenden finden Sie ein Beispiel dafür, wie Sie dies in Python und über die Befehlszeile tun können:

MPS Beispiel Ausbildung

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.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")
# Start training from a pretrained *.pt model using MPS
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=mps

Dadurch wird die Rechenleistung der Apple-Siliziumchips genutzt und eine effizientere Verarbeitung der Trainingsaufgaben ermöglicht. Ausführlichere Anleitungen und erweiterte Konfigurationsoptionen finden Sie in der DokumentationPyTorch MPS .

Wiederaufnahme unterbrochener Schulungen

Die Wiederaufnahme des Trainings aus einem zuvor gespeicherten Zustand ist eine wichtige Funktion bei der Arbeit mit Deep-Learning-Modellen. Dies kann in verschiedenen Szenarien nützlich sein, z. B. wenn der Trainingsprozess unerwartet unterbrochen wurde oder wenn Sie das Training eines Modells mit neuen Daten oder für mehrere Epochen fortsetzen möchten.

Wenn das Training wieder aufgenommen wird, lädt Ultralytics YOLO die Gewichte aus dem zuletzt gespeicherten Modell und stellt auch den Optimierungsstatus, den Lernratenplaner und die Epochenzahl wieder her. So können Sie den Trainingsprozess nahtlos an der Stelle fortsetzen, an der er unterbrochen wurde.

Sie können das Training auf Ultralytics YOLO einfach wieder aufnehmen, indem Sie die resume Argument zu True beim Aufruf der train Methode und die Angabe des Pfads zur .pt Datei, die die teilweise trainierten Modellgewichte enthält.

Im Folgenden finden Sie ein Beispiel dafür, wie Sie ein unterbrochenes Training mit Python und über die Befehlszeile wieder aufnehmen können:

Beispiel Lebenslauf Ausbildung

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)
# Resume an interrupted training
yolo train resume model=path/to/last.pt

Durch die Einstellung resume=Truedie train setzt das Training an der Stelle fort, an der es unter Verwendung des in der Datei "path/to/last.pt" gespeicherten Zustands unterbrochen wurde. Wenn die resume Argument weggelassen oder auf Falsedie train Funktion wird eine neue Trainingseinheit gestartet.

Denken Sie daran, dass Checkpoints standardmäßig am Ende jeder Epoche oder in festen Abständen mit der Option save_period Argument, so dass Sie mindestens 1 Epoche abschließen müssen, um einen Trainingslauf fortzusetzen.

Zug-Einstellungen

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 die Stapelgröße, die Lernrate, das Momentum und der Gewichtsabfall. Auch die Wahl des Optimierers, der Verlustfunktion und der Zusammensetzung des Trainingsdatensatzes kann sich auf den Trainingsprozess auswirken. Eine sorgfältige Abstimmung und das Experimentieren mit diesen Einstellungen sind entscheidend für die Optimierung der Leistung.

Argument Standard Beschreibung
model None Gibt die Modelldatei für das Training an. Akzeptiert einen Pfad zu entweder einer .pt vortrainiertes Modell oder ein .yaml Konfigurationsdatei. Unerlässlich für die Definition der Modellstruktur oder die Initialisierung von Gewichten.
data None Pfad zur Konfigurationsdatei des Datensatzes (z. B., coco8.yaml). Diese Datei enthält datensatzspezifische Parameter, einschließlich der Pfade zu den Trainings- und Validierungsdaten, Klassennamen und Anzahl der Klassen.
epochs 100 Gesamtzahl der Trainingsepochen. Jede Epoche stellt einen vollständigen Durchlauf durch den gesamten Datensatz dar. Die Anpassung dieses Wertes kann sich auf die Trainingsdauer und die Modellleistung auswirken.
time None Maximale Trainingszeit in Stunden. Falls festgelegt, übersteuert dies den Wert epochs Argument, so dass das Training nach der angegebenen Dauer automatisch beendet wird. Nützlich für zeitlich eingeschränkte Trainingsszenarien.
patience 100 Anzahl der Epochen, die ohne Verbesserung der Validierungsmetriken abgewartet werden sollen, bevor das Training vorzeitig beendet wird. Hilft, eine Überanpassung zu verhindern, indem das Training abgebrochen wird, wenn die Leistung nicht mehr ausreicht.
batch 16 Größe der Chargemit drei Modi: als Ganzzahl (z. B., batch=16), Auto-Modus für 60% GPU Speicherauslastung (batch=-1), oder Auto-Modus mit festgelegtem Nutzungsanteil (batch=0.70).
imgsz 640 Zielbildgröße für das Training. Alle Bilder werden auf diese Größe gebracht, bevor sie in das Modell eingespeist werden. Beeinflusst die Modellgenauigkeit und den Rechenaufwand.
save True Ermöglicht das Speichern von Trainingskontrollpunkten und endgültigen Modellgewichten. Nützlich für die Wiederaufnahme des Trainings oder den Einsatz des Modells.
save_period -1 Häufigkeit der Speicherung von Modellprüfpunkten, angegeben in Epochen. Ein Wert von -1 deaktiviert diese Funktion. Nützlich zum Speichern von Zwischenmodellen während langer Trainingssitzungen.
cache False Ermöglicht die Zwischenspeicherung von Datensatzbildern im Speicher (True/ram), auf der Festplatte (disk), oder deaktiviert sie (False). Verbessert die Trainingsgeschwindigkeit durch Verringerung der Festplattenein- und -ausgabe auf Kosten einer erhöhten Speichernutzung.
device None Gibt das/die Rechengerät(e) für das Training an: eine einzelne GPU (device=0), mehrere GPUs (device=0,1), CPU (device=cpu), oder MPS für Apple-Silizium (device=mps).
workers 8 Anzahl der Arbeits-Threads für das Laden von Daten (pro RANK wenn Multi-GPU Training). Beeinflusst die Geschwindigkeit der Datenvorverarbeitung und der Einspeisung in das Modell, besonders nützlich in MultiGPU Setups.
project None Name des Projektverzeichnisses, in dem die Trainingsergebnisse gespeichert werden. Ermöglicht die organisierte Speicherung verschiedener Experimente.
name None Name des Trainingslaufs. Wird zur Erstellung eines Unterverzeichnisses im Projektordner verwendet, in dem Trainingsprotokolle und Ausgaben gespeichert werden.
exist_ok False Bei "True" kann ein vorhandenes Projekt/Namensverzeichnis überschrieben werden. Nützlich für iterative Experimente, ohne vorherige Ausgaben manuell löschen zu müssen.
pretrained True Legt fest, ob das Training mit einem vorher trainierten Modell beginnen soll. Kann ein boolescher Wert oder ein String-Pfad zu einem bestimmten Modell sein, aus dem die Gewichte geladen werden sollen. Erhöht die Trainingseffizienz und die Modellleistung.
optimizer 'auto' Auswahl des Optimierers für die Ausbildung. Die Optionen umfassen SGD, Adam, AdamW, NAdam, RAdam, RMSProp usw., oder auto für die automatische Auswahl auf der Grundlage der Modellkonfiguration. Beeinflusst die Konvergenzgeschwindigkeit und Stabilität.
seed 0 Legt den zufälligen Seed für das Training fest, um die Reproduzierbarkeit der Ergebnisse bei verschiedenen Läufen mit denselben Konfigurationen zu gewährleisten.
deterministic True Erzwingt die Verwendung deterministischer Algorithmen, was die Reproduzierbarkeit sicherstellt, aber aufgrund der Beschränkung auf nicht-deterministische Algorithmen Leistung und Geschwindigkeit beeinträchtigen kann.
single_cls False Behandelt beim Training alle Klassen in Mehrklassendatensätzen als eine einzige Klasse. Nützlich für binäre Klassifizierungsaufgaben oder wenn der Schwerpunkt eher auf der Anwesenheit von Objekten als auf der Klassifizierung liegt.
rect False Ermöglicht rechteckiges Training, wobei die Zusammensetzung der Stapel für minimale Polsterung optimiert wird. Kann die Effizienz und Geschwindigkeit verbessern, kann aber die Modellgenauigkeit beeinträchtigen.
cos_lr False Verwendet einen Kosinus-Lernratenplaner, der die Lernrate anhand einer Kosinuskurve über Epochen hinweg anpasst. Hilft bei der Verwaltung der Lernrate für eine bessere Konvergenz.
close_mosaic 10 Deaktiviert die Mosaikdatenerweiterung in den letzten N Epochen, um das Training vor dem Abschluss zu stabilisieren. Die Einstellung 0 deaktiviert diese Funktion.
resume False Setzt das Training ab dem letzten gespeicherten Kontrollpunkt fort. Lädt automatisch Modellgewichte, Optimierungsstatus und Epochenzahl und setzt das Training nahtlos fort.
amp True Ermöglicht automatisches Mixed-Precision-Training (AMP), wodurch die Speichernutzung reduziert und das Training möglicherweise mit minimalen Auswirkungen auf die Genauigkeit beschleunigt wird.
fraction 1.0 Gibt den Teil des Datensatzes an, der für das Training verwendet werden soll. Ermöglicht das Training auf einer Teilmenge des vollständigen Datensatzes, was für Experimente oder bei begrenzten Ressourcen nützlich ist.
profile False Ermöglicht die Erstellung von Profilen der Geschwindigkeiten ONNX und TensorRT während des Trainings, was für die Optimierung der Modellbereitstellung nützlich ist.
freeze None Friert die ersten N Schichten des Modells oder bestimmte Schichten nach Index ein und reduziert so die Anzahl der trainierbaren Parameter. Nützlich für die Feinabstimmung oder das Transfer-Lernen.
lr0 0.01 Anfängliche Lernrate (d.h. SGD=1E-2, Adam=1E-3) . Die Anpassung dieses Wertes ist für den Optimierungsprozess von entscheidender Bedeutung, da er beeinflusst, wie schnell die Modellgewichte aktualisiert werden.
lrf 0.01 Endgültige Lernrate als Bruchteil der Anfangsrate = (lr0 * lrf), die in Verbindung mit Schedulern verwendet werden, um die Lernrate im Laufe der Zeit anzupassen.
momentum 0.937 Momentumfaktor für SGD oder beta1 für Adam-Optimierer, der die Einbeziehung vergangener Gradienten in die aktuelle Aktualisierung beeinflusst.
weight_decay 0.0005 L2-Regularisierungsterm, der große Gewichte bestraft, um eine Überanpassung zu verhindern.
warmup_epochs 3.0 Anzahl der Epochen zum Aufwärmen der Lernrate, wobei die Lernrate schrittweise von einem niedrigen Wert auf die anfängliche Lernrate erhöht wird, um das Training frühzeitig zu stabilisieren.
warmup_momentum 0.8 Anfangsschwung für die Aufwärmphase, der sich im Laufe der Aufwärmphase allmählich an den eingestellten Schwung anpasst.
warmup_bias_lr 0.1 Lernrate für Bias-Parameter während der Aufwärmphase, um das Modelltraining in den ersten Epochen zu stabilisieren.
box 7.5 Gewicht der Box-Verlustkomponente in der Verlustfunktion, das angibt, wie viel Wert auf die genaue Vorhersage der Bounding-Box-Koordinaten gelegt wird.
cls 0.5 Gewicht des Klassifizierungsverlusts in der Gesamtverlustfunktion, das die Bedeutung der korrekten Klassenvorhersage im Vergleich zu anderen Komponenten bestimmt.
dfl 1.5 Gewicht des fokalen Verteilungsverlustes, der in bestimmten Versionen von YOLO für eine feinere Klassifizierung verwendet wird.
pose 12.0 Gewicht des Pose-Verlustes in Modellen, die für die Pose-Schätzung trainiert wurden, was den Schwerpunkt auf die genaue Vorhersage der Pose-Keypoints legt.
kobj 2.0 Gewichtung des Objektivitätsverlustes von Schlüsselpunkten in Modellen zur Posenschätzung, wobei die Erkennungssicherheit mit der Posengenauigkeit abgeglichen wird.
label_smoothing 0.0 Die Glättung von Beschriftungen, die harte Beschriftungen zu einer Mischung aus der Zielbeschriftung und einer gleichmäßigen Verteilung über die Beschriftungen abmildert, kann die Verallgemeinerung verbessern.
nbs 64 Nominale Chargengröße für die Normalisierung des Verlustes.
overlap_mask True Legt fest, ob die Objektmasken für das Training zu einer einzigen Maske zusammengeführt oder für jedes Objekt getrennt gehalten werden sollen. Im Falle einer Überlappung wird die kleinere Maske beim Zusammenführen über die größere Maske gestülpt.
mask_ratio 4 Downsample-Verhältnis für Segmentierungsmasken, das sich auf die Auflösung der beim Training verwendeten Masken auswirkt.
dropout 0.0 Dropout-Rate für die Regularisierung bei Klassifizierungsaufgaben, die eine Überanpassung durch zufälliges Auslassen von Einheiten während des Trainings verhindert.
val True Ermöglicht die Validierung während des Trainings, so dass die Leistung des Modells in regelmäßigen Abständen anhand eines separaten Datensatzes bewertet werden kann.
plots False Erzeugt und speichert Diagramme von Trainings- und Validierungsmetriken sowie Vorhersagebeispiele, die einen visuellen Einblick in die Modellleistung und den Lernfortschritt geben.

Hinweis zu den Einstellungen der Chargengröße

Die batch Argument kann auf drei Arten konfiguriert werden:

  • Feste Chargengröße: Setzen Sie einen ganzzahligen Wert (z.B., batch=16), wobei die Anzahl der Bilder pro Stapel direkt angegeben wird.
  • Auto-Modus (60% GPU Speicher): Verwenden Sie batch=-1 um die Stapelgröße automatisch so anzupassen, dass der Speicher zu etwa 60 % genutzt wird CUDA .
  • Automatischer Modus mit Auslastungsanteil: Stellen Sie einen Bruchwert ein (z.B., batch=0.70), um die Stapelgröße auf der Grundlage des angegebenen Anteils der GPU Speichernutzung anzupassen.

Erweiterungseinstellungen und Hyperparameter

Augmentierungstechniken sind wichtig, um die Robustheit und Leistung von YOLO Modellen zu verbessern, indem sie Variabilität in die Trainingsdaten einbringen und dem Modell helfen, besser auf ungesehene Daten zu generalisieren. In der folgenden Tabelle werden der Zweck und die Auswirkungen der einzelnen Erweiterungsargumente erläutert:

Argument Typ Standard Bereich Beschreibung
hsv_h float 0.015 0.0 - 1.0 Passt den Farbton des Bildes um einen Bruchteil des Farbkreises an und führt so Farbvariabilität ein. Hilft dem Modell bei der Verallgemeinerung über verschiedene Lichtverhältnisse hinweg.
hsv_s float 0.7 0.0 - 1.0 Ändert die Sättigung des Bildes um einen Bruchteil, wodurch die Intensität der Farben beeinflusst wird. Nützlich für die Simulation verschiedener Umgebungsbedingungen.
hsv_v float 0.4 0.0 - 1.0 Ändert den Wert (die Helligkeit) des Bildes um einen Bruchteil, damit das Modell unter verschiedenen Lichtverhältnissen gut funktioniert.
degrees float 0.0 -180 - +180 Dreht das Bild zufällig innerhalb des angegebenen Gradbereichs und verbessert so die Fähigkeit des Modells, Objekte in verschiedenen Ausrichtungen zu erkennen.
translate float 0.1 0.0 - 1.0 Verschiebt das Bild horizontal und vertikal um einen Bruchteil der Bildgröße und hilft so beim Erkennen von teilweise sichtbaren Objekten.
scale float 0.5 >=0.0 Skaliert das Bild mit einem Verstärkungsfaktor, um Objekte in verschiedenen Entfernungen von der Kamera zu simulieren.
shear float 0.0 -180 - +180 Schneidet das Bild um einen bestimmten Grad, um den Effekt der Betrachtung von Objekten aus verschiedenen Winkeln zu imitieren.
perspective float 0.0 0.0 - 0.001 Wendet eine zufällige perspektivische Transformation auf das Bild an, um die Fähigkeit des Modells zu verbessern, Objekte im 3D-Raum zu verstehen.
flipud float 0.0 0.0 - 1.0 Stellt das Bild mit der angegebenen Wahrscheinlichkeit auf den Kopf, wodurch die Datenvariabilität erhöht wird, ohne die Eigenschaften des Objekts zu beeinträchtigen.
fliplr float 0.5 0.0 - 1.0 Spiegelt das Bild mit der angegebenen Wahrscheinlichkeit von links nach rechts. Dies ist nützlich, um symmetrische Objekte zu lernen und die Vielfalt des Datensatzes zu erhöhen.
bgr float 0.0 0.0 - 1.0 Kehrt die Bildkanäle mit der angegebenen Wahrscheinlichkeit von RGB zu BGR um, was nützlich ist, um die Robustheit gegenüber einer falschen Kanalanordnung zu erhöhen.
mosaic float 1.0 0.0 - 1.0 Kombiniert vier Trainingsbilder zu einem einzigen und simuliert so verschiedene Szenenkompositionen und Objektinteraktionen. Äußerst effektiv für das Verständnis komplexer Szenen.
mixup float 0.0 0.0 - 1.0 Mischt zwei Bilder und ihre Beschriftungen, um ein zusammengesetztes Bild zu erzeugen. Verbessert die Verallgemeinerungsfähigkeit des Modells durch Einführung von Beschriftungsrauschen und visueller Variabilität.
copy_paste float 0.0 0.0 - 1.0 Kopiert Objekte aus einem Bild und fügt sie in ein anderes ein. Dies ist nützlich, um die Anzahl der Objektinstanzen zu erhöhen und die Objektverdeckung zu lernen.
copy_paste_mode str flip - Auswahl der Copy-Paste-Erweiterungsmethode aus den Optionen von ("flip", "mixup").
auto_augment str randaugment - Wendet automatisch eine vordefinierte Erweiterungsrichtlinie an (randaugment, autoaugment, augmix), die durch Diversifizierung der visuellen Merkmale für Klassifizierungsaufgaben optimiert werden.
erasing float 0.4 0.0 - 0.9 Löscht einen Teil des Bildes während des Klassifizierungstrainings nach dem Zufallsprinzip, damit sich das Modell bei der Erkennung auf weniger offensichtliche Merkmale konzentrieren kann.
crop_fraction float 1.0 0.1 - 1.0 Beschneidet das Klassifizierungsbild auf einen Bruchteil seiner Größe, um die zentralen Merkmale hervorzuheben und sich an den Maßstab des Objekts anzupassen, wodurch die Ablenkung durch den Hintergrund reduziert wird.

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

Infos

Weitere Informationen über die Ausbildung von Verstärkungsmaßnahmen finden Sie im Referenzteil.

Protokollierung

Beim Training eines YOLO11 Modells kann es nützlich sein, die Leistung des Modells im Laufe der Zeit 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ählen Sie ihn aus dem Dropdown-Menü im obigen Codeschnipsel aus und führen ihn aus. Der ausgewählte Logger wird installiert und initialisiert.

Comet

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 Verfolgung von Hyperparametern.

So verwenden Sie Comet:

Beispiel

# pip install comet_ml
import comet_ml

comet_ml.init()

Denken Sie daran, sich auf der Website Comet bei Ihrem Konto anzumelden und Ihren API-Schlüssel zu erhalten. Diesen müssen Sie zu Ihren Umgebungsvariablen oder Ihrem Skript hinzufügen, um Ihre Experimente zu protokollieren.

ClearML

ClearML ist eine Open-Source-Plattform, die die Verfolgung von Experimenten automatisiert und eine effiziente gemeinsame Nutzung von Ressourcen ermöglicht. Sie wurde entwickelt, um Teams dabei zu helfen, ihre ML-Arbeit effizienter zu verwalten, auszuführen und zu reproduzieren.

So verwenden Sie ClearML:

Beispiel

# pip install clearml
import clearml

clearml.browser_login()

Nachdem Sie dieses Skript ausgeführt haben, müssen Sie sich bei Ihrem ClearML Konto im Browser anmelden und Ihre Sitzung authentifizieren.

TensorBoard

TensorBoard ist ein Visualisierungs-Toolkit für TensorFlow. Es erlaubt Ihnen, Ihren TensorFlow Graphen zu visualisieren, quantitative Metriken über die Ausführung Ihres Graphen darzustellen und zusätzliche Daten wie Bilder, die ihn durchlaufen, anzuzeigen.

Zur Verwendung von TensorBoard in Google Colab:

Beispiel

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

Um TensorBoard lokal zu benutzen, führen Sie den folgenden Befehl aus und sehen Sie sich die Ergebnisse unter http://localhost:6006/ an.

Beispiel

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

Dies lädt TensorBoard und leitet es zu dem Verzeichnis, in dem Ihre Trainingsprotokolle gespeichert sind.

Nachdem Sie Ihren Logger eingerichtet haben, können Sie mit dem Training Ihres Modells fortfahren. Alle Trainingsmetriken werden automatisch in der von Ihnen gewählten Plattform protokolliert, und Sie können auf diese Protokolle zugreifen, um die Leistung Ihres Modells im Laufe der Zeit zu überwachen, verschiedene Modelle zu vergleichen und verbesserungswürdige Bereiche zu ermitteln.

FAQ

Wie trainiere ich ein Objekterkennungsmodell mit Ultralytics YOLO11 ?

Um ein Objekterkennungsmodell mit Ultralytics YOLO11 zu trainieren, können Sie entweder die Python API oder die CLI verwenden. Nachfolgend finden Sie ein Beispiel für beide:

Single-GPU und CPU Schulungsbeispiel

from ultralytics import YOLO

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

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

Weitere Einzelheiten finden Sie im Abschnitt " Zugeinstellungen ".

Was sind die wichtigsten Merkmale des Zugmodus von Ultralytics YOLO11 ?

Zu den wichtigsten Merkmalen des Zugmodus von Ultralytics YOLO11 gehören:

  • Automatischer Datensatz-Download: Automatischer Download von Standarddatensätzen wie COCO, VOC und ImageNet.
  • Multi-GPU Unterstützung: Skalieren Sie das Training über mehrere GPUs für eine schnellere Verarbeitung.
  • Hyperparameter-Konfiguration: Anpassen von Hyperparametern über YAML-Dateien oder CLI Argumente.
  • Visualisierung und Überwachung: Echtzeit-Tracking von Trainingsmetriken für bessere Einblicke.

Diese Funktionen machen das Training effizient und lassen sich an Ihre Bedürfnisse anpassen. Weitere Einzelheiten finden Sie im Abschnitt "Hauptfunktionen des Trainingsmodus ".

Wie kann ich das Training nach einer unterbrochenen Sitzung auf Ultralytics YOLO11 wieder aufnehmen?

Um das Training nach einer unterbrochenen Sitzung wieder aufzunehmen, setzen Sie den resume Argument zu True und geben Sie den Pfad zum letzten gespeicherten Prüfpunkt an.

Beispiel Lebenslauf Ausbildung

from ultralytics import YOLO

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

# Resume training
results = model.train(resume=True)
yolo train resume model=path/to/last.pt

Weitere Informationen finden Sie im Abschnitt über die Wiederaufnahme unterbrochener Schulungen.

Kann ich YOLO11 Modelle auf Apple-Siliziumchips trainieren?

Ja, Ultralytics YOLO11 unterstützt das Training auf Apple-Silizium-Chips, die das Metal Performance Shaders (MPS) Framework verwenden. Geben Sie "mps" als Ihr Trainingsgerät an.

MPS Beispiel Ausbildung

from ultralytics import YOLO

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

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

Weitere Einzelheiten finden Sie im Abschnitt Apple Silicon MPS Training.

Was sind die üblichen Trainingseinstellungen, und wie konfiguriere ich sie?

Ultralytics YOLO11 ermöglicht es Ihnen, eine Vielzahl von Trainingseinstellungen wie Stapelgröße, Lernrate, Epochen und mehr über Argumente zu konfigurieren. Hier ist ein kurzer Überblick:

Argument Standard Beschreibung
model None Pfad zur Modelldatei für das Training.
data None Pfad zur Konfigurationsdatei des Datensatzes (z. B., coco8.yaml).
epochs 100 Gesamtzahl der Trainingsepochen.
batch 16 Chargengröße, einstellbar als Integer- oder Automodus.
imgsz 640 Zielbildgröße für das Training.
device None Rechengerät(e) für die Ausbildung wie cpu, 0, 0,1, oder mps.
save True Ermöglicht das Speichern von Trainingskontrollpunkten und endgültigen Modellgewichten.

Eine ausführliche Anleitung zu den Trainingseinstellungen finden Sie im Abschnitt Trainingseinstellungen.

📅 Erstellt vor 1 Jahr ✏️ Aktualisiert vor 17 Tagen

Kommentare