Modelltraining mit Ultralytics YOLO
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.
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
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
Durch die Einstellung resume=True
die 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 False
die 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. |
classes |
None |
Gibt eine Liste von Klassen-IDs an, auf die trainiert werden soll. Nützlich, um beim Training nur bestimmte Klassen herauszufiltern und sich auf sie zu konzentrieren. |
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. |
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 und fügt Objekte über Bilder hinweg ein, was für die Vergrößerung von Objektinstanzen und das Lernen von Objektverdeckungen nützlich ist. Erfordert Segmentierungsetiketten. |
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:
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:
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:
Um TensorBoard lokal zu benutzen, führen Sie den folgenden Befehl aus und sehen Sie sich die Ergebnisse unter http://localhost:6006/ an.
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
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
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
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.