Zum Inhalt springen

Modell Training mit Ultralytics YOLO

Ultralytics YOLO ├ľkosystem und Integrationen

Einf├╝hrung

Beim Trainieren eines Deep-Learning-Modells m├╝ssen Daten eingegeben und die Parameter angepasst werden, damit das Modell genaue Vorhersagen machen kann. Der Trainingsmodus auf Ultralytics YOLOv8 wurde f├╝r ein effektives und effizientes Training von Objekterkennungsmodellen entwickelt und nutzt die M├Âglichkeiten moderner Hardware voll aus. In diesem Leitfaden erf├Ąhrst du alle Details, die du f├╝r das Training deiner eigenen Modelle mit den robusten Funktionen von YOLOv8 ben├Âtigst.



Pass auf: So trainierst du ein YOLOv8 Modell auf deinem eigenen Datensatz in Google Colab.

Warum Ultralytics YOLO f├╝r die Ausbildung w├Ąhlen?

Hier sind einige ├╝berzeugende Gr├╝nde, sich f├╝r den Zugmodus von YOLOv8 zu entscheiden:

  • Effizienz: Hol das Beste aus deiner Hardware heraus, egal ob du mit einer einzelnen GPU arbeitest oder ├╝ber mehrere GPUs skalierst.
  • Vielseitigkeit: Trainiere mit benutzerdefinierten Datens├Ątzen zus├Ątzlich zu den bereits verf├╝gbaren Datens├Ątzen wie COCO, VOC und ImageNet.
  • Benutzerfreundlich: Einfache, aber leistungsstarke Schnittstellen CLI und Python sorgen f├╝r ein unkompliziertes Training.
  • Flexibilit├Ąt bei den Hyperparametern: Eine breite Palette von anpassbaren Hyperparametern zur Feinabstimmung der Modellleistung.

Hauptmerkmale des Zugmodus

Im Folgenden sind einige bemerkenswerte Merkmale des Zugmodus von YOLOv8 aufgef├╝hrt:

  • Automatischer Datensatz-Download: Standarddatens├Ątze wie COCO, VOC und ImageNet werden bei der ersten Verwendung automatisch heruntergeladen.
  • Multi-GPU-Unterst├╝tzung: Skaliere deine Trainingsbem├╝hungen nahtlos auf mehrere GPUs, um den Prozess zu beschleunigen.
  • Hyperparameter-Konfiguration: Die Option, 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

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

Verwendungsbeispiele

Trainiere YOLOv8n mit dem COCO128-Datensatz f├╝r 100 Epochen bei einer Bildgr├Â├če von 640. Das Trainingsger├Ąt kann mit der Option device Argument. Wenn kein Argument ├╝bergeben wird, kann GPU device=0 wird verwendet, falls verf├╝gbar, ansonsten device=cpu verwendet werden. Eine vollst├Ąndige Liste der Trainingsargumente findest du im Abschnitt Argumente weiter unten.

Beispiel f├╝r eine Ausbildung mit einer GPU und einer CPU

Das Ger├Ąt wird automatisch bestimmt. Wenn ein Grafikprozessor verf├╝gbar ist, wird er verwendet, andernfalls beginnt das Training auf dem Prozessor.

from ultralytics import YOLO

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

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

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

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

Multi-GPU Ausbildung

Das 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, gibst du die GPU-Ger├Ąte-IDs an, die du verwenden m├Âchtest.

Beispiel f├╝r Multi-GPU-Training

Um mit 2 GPUs, CUDA-Ger├Ąten 0 und 1, zu trainieren, verwende die folgenden Befehle. Erweitere bei Bedarf auf weitere GPUs.

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.pt')  # load a pretrained model (recommended for training)

# Train the model with 2 GPUs
results = model.train(data='coco128.yaml', epochs=100, imgsz=640, device=[0, 1])
# Start training from a pretrained *.pt model using GPUs 0 and 1
yolo detect train data=coco128.yaml model=yolov8n.pt epochs=100 imgsz=640 device=0,1

Apple M1 und M2 MPS Schulung

Mit der Unterst├╝tzung der Apple M1 und M2 Chips, die in die Ultralytics YOLO Modelle integriert sind, ist es jetzt m├Âglich, deine Modelle auf Ger├Ąten zu trainieren, die das leistungsstarke Metal Performance Shaders (MPS) Framework nutzen. MPS bietet eine leistungsstarke M├Âglichkeit, Berechnungen und Bildverarbeitungsaufgaben auf dem Apple-eigenen Chip auszuf├╝hren.

Um das Training auf Apple M1 und M2 Chips zu aktivieren, solltest du "mps" als dein Ger├Ąt angeben, wenn du den Trainingsprozess startest. Im Folgenden findest du ein Beispiel daf├╝r, wie du dies in Python und ├╝ber die Kommandozeile tun kannst:

MPS Ausbildung Beispiel

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.pt')  # load a pretrained model (recommended for training)

# Train the model with 2 GPUs
results = model.train(data='coco128.yaml', epochs=100, imgsz=640, device='mps')
# Start training from a pretrained *.pt model using GPUs 0 and 1
yolo detect train data=coco128.yaml model=yolov8n.pt epochs=100 imgsz=640 device=mps

Dadurch wird die Rechenleistung der M1/M2-Chips genutzt, was eine effizientere Bearbeitung der Trainingsaufgaben erm├Âglicht. Ausf├╝hrlichere Anleitungen und erweiterte Konfigurationsoptionen findest du 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 du ein Modell mit neuen Daten oder f├╝r mehr Epochen weiter trainieren m├Âchtest.

Wenn du das Training wieder aufnimmst, l├Ądt Ultralytics YOLO die Gewichte aus dem zuletzt gespeicherten Modell und stellt auch den Optimierungsstatus, den Lernratenplaner und die Epochenzahl wieder her. So kannst du das Training nahtlos an der Stelle fortsetzen, an der es unterbrochen wurde.

Du kannst das Training auf Ultralytics YOLO einfach wieder aufnehmen, indem du 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 findest du ein Beispiel, wie du ein unterbrochenes Training mit Python und ├╝ber die Kommandozeile wieder aufnehmen kannst:

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=True, die train Funktion setzt das Training an der Stelle fort, an der es aufgeh├Ârt hat, und verwendet dabei den Status, der in der Datei "path/to/last.pt" gespeichert ist. Wenn die resume Argument weggelassen oder auf False, die train Funktion wird eine neue Trainingseinheit gestartet.

Denke daran, dass Checkpoints standardm├Ą├čig am Ende jeder Epoche oder in einem festen Intervall mit der Option save_period Argument, sodass du mindestens 1 Epoche abschlie├čen musst, 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 den Trainingsprozess beeinflussen. 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. Wichtig f├╝r die Definition der Modellstruktur oder die Initialisierung der Gewichte.
data None Pfad zur Konfigurationsdatei des Datensatzes (z. B., coco128.yaml). Diese Datei enth├Ąlt datensatzspezifische Parameter, darunter Pfade zu Trainings- und Validierungsdaten, Klassennamen und die 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 die epochs Argument, so dass das Training nach der angegebenen Dauer automatisch beendet wird. N├╝tzlich f├╝r zeitlich begrenzte Trainingsszenarien.
patience 100 Anzahl der Epochen, die abgewartet werden sollen, bevor das Training vorzeitig abgebrochen wird, ohne dass sich die Validierungskennzahlen verbessern. Hilft, eine ├ťberanpassung zu verhindern, indem das Training abgebrochen wird, wenn die Leistung nicht mehr ausreicht.
batch 16 Stapelgr├Â├če f├╝r das Training, die angibt, wie viele Bilder verarbeitet werden, bevor die internen Parameter des Modells aktualisiert werden. AutoBatch (batch=-1) passt die Stapelgr├Â├če dynamisch an die Verf├╝gbarkeit von GPU-Speicher an.
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 Trainingseinheiten.
cache False Erm├Âglicht das Zwischenspeichern von Datensatzbildern im Speicher (True/ram), auf der Festplatte (disk), oder deaktiviert sie (False). Verbessert die Trainingsgeschwindigkeit, indem es die Festplattenein- und -ausgabe auf Kosten einer erh├Âhten Speichernutzung reduziert.
device None Legt die Recheneinheit(en) f├╝r das Training fest: 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 Worker-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 Multi-GPU-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 f├╝r die Erstellung eines Unterverzeichnisses im Projektordner verwendet, in dem die Trainingsprotokolle und -ergebnisse gespeichert werden.
exist_ok False Bei True kann ein bestehendes Projekt/Namensverzeichnis ├╝berschrieben werden. N├╝tzlich f├╝r iterative Experimente, ohne dass die vorherigen Ausgaben manuell gel├Âscht werden 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, von dem die Gewichte geladen werden sollen. Erh├Âht die Trainingseffizienz und die Leistung des Modells.
optimizer 'auto' W├Ąhle einen Optimierer f├╝r die Ausbildung. Die Optionen umfassen SGD, Adam, AdamW, NAdam, RAdam, RMSProp usw., oder auto f├╝r die automatische Auswahl auf Basis der Modellkonfiguration. Beeinflusst die Konvergenzgeschwindigkeit und Stabilit├Ąt.
verbose False Aktiviert die ausf├╝hrliche Ausgabe w├Ąhrend des Trainings und liefert detaillierte Protokolle und Fortschrittsberichte. N├╝tzlich f├╝r die Fehlersuche und die genaue ├ťberwachung des Trainingsprozesses.
seed 0 Legt den zuf├Ąlligen Seed f├╝r das Training fest, um die Reproduzierbarkeit der Ergebnisse bei verschiedenen L├Ąufen mit denselben Konfigurationen sicherzustellen.
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 alle Klassen in Mehrklassen-Datens├Ątzen beim Training als eine einzige Klasse. N├╝tzlich f├╝r bin├Ąre Klassifizierungsaufgaben oder wenn der Fokus eher auf der Anwesenheit von Objekten als auf der Klassifizierung liegt.
rect False Erm├Âglicht ein rechteckiges Training, bei dem die Stapelzusammensetzung f├╝r minimale Auff├╝llungen optimiert wird. Dies 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 Steuerung 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. Ein Wert von 0 deaktiviert diese Funktion.
resume False Setzt das Training ab dem letzten gespeicherten Kontrollpunkt fort. L├Ądt automatisch die Modellgewichte, den Optimierungsstatus und die Epochenzahl und setzt das Training nahtlos fort.
amp True Erm├Âglicht ein automatisches Training mit gemischter Pr├Ązision (AMP), das die Speichernutzung reduziert und das Training m├Âglicherweise beschleunigt, ohne die Genauigkeit zu beeintr├Ąchtigen.
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 gesamten Datensatzes, was f├╝r Experimente oder bei begrenzten Ressourcen n├╝tzlich ist.
profile False Erm├Âglicht die Erstellung von Profilen der Geschwindigkeiten von ONNX und TensorRT w├Ąhrend des Trainings, was f├╝r die Optimierung des Modelleinsatzes 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 Transferlernen.
lr0 0.01 Anf├Ąngliche Lernrate (d. h. SGD=1E-2, Adam=1E-3) . Die Anpassung dieses Wertes ist entscheidend f├╝r den Optimierungsprozess und beeinflusst, wie schnell die Modellgewichte aktualisiert werden.
lrf 0.01 Endg├╝ltige Lernrate als ein Bruchteil der anf├Ąnglichen Rate = (lr0 * lrf), die in Verbindung mit Schedulern verwendet werden, um die Lernrate im Laufe der Zeit anzupassen.
momentum 0.937 Momentum-Faktor 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 f├╝r das 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-Loss-Komponente in der Verlustfunktion, die bestimmt, 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 Verteilungsfokusverlustes, der in bestimmten Versionen von YOLO f├╝r eine feink├Ârnige Klassifizierung verwendet wird.
pose 12.0 Gewicht des Posenverlusts in Modellen, die f├╝r die Posensch├Ątzung trainiert wurden, was den Schwerpunkt auf die genaue Vorhersage von Posen-Keypoints legt.
kobj 2.0 Gewichtung des Objektivit├Ątsverlusts von Schl├╝sselpunkten in Modellen zur Posensch├Ątzung, die die Erkennungssicherheit mit der Posengenauigkeit in Einklang bringen.
label_smoothing 0.0 Die Gl├Ąttung von Labels, d.h. die Aufweichung harter Labels zu einer Mischung aus dem Ziel-Label und einer gleichm├Ą├čigen Verteilung ├╝ber die Labels, kann die Generalisierung verbessern.
nbs 64 Nominale Losgr├Â├če zur Normalisierung des Verlustes.
overlap_mask True Legt fest, ob sich die Segmentierungsmasken w├Ąhrend des Trainings ├╝berlappen sollen, z. B. bei Instanzsegmentierungsaufgaben.
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 Weglassen von Einheiten w├Ąhrend des Trainings verhindert.
val True Erm├Âglicht die Validierung w├Ąhrend des Trainings, so dass die Leistung des Modells regelm├Ą├čig an einem separaten Datensatz bewertet werden kann.
plots False Erzeugt und speichert Diagramme von Trainings- und Validierungskennzahlen sowie Vorhersagebeispiele, die einen visuellen Einblick in die Modellleistung und den Lernfortschritt geben.

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. Die folgende Tabelle beschreibt den Zweck und die Wirkung der einzelnen Erweiterungsargumente:

Argument Typ Standard Reichweite Beschreibung
hsv_h float 0.015 0.0 - 1.0 Passt den Farbton des Bildes um einen Bruchteil des Farbkreises an und sorgt so f├╝r Farbvariabilit├Ąt. Hilft dem Modell, sich an unterschiedliche Lichtverh├Ąltnisse anzupassen.
hsv_s float 0.7 0.0 - 1.0 ├ändert die S├Ąttigung des Bildes um einen Bruchteil und beeinflusst so die Intensit├Ąt der Farben. N├╝tzlich, um unterschiedliche Umgebungsbedingungen zu simulieren.
hsv_v float 0.4 0.0 - 1.0 ├ändert den Wert (die Helligkeit) des Bildes um einen Bruchteil, damit das Modell bei 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 Lernen, teilweise sichtbare Objekte zu erkennen.
scale float 0.5 >=0.0 Skaliert das Bild mit einem Verst├Ąrkungsfaktor und simuliert so Objekte in unterschiedlichen Entfernungen zur Kamera.
shear float 0.0 -180 - +180 Schert das Bild um einen bestimmten Grad, um den Effekt nachzuahmen, dass Objekte aus verschiedenen Winkeln betrachtet werden.
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 der Datens├Ątze zu erh├Âhen.
mosaic float 1.0 0.0 - 1.0 Kombiniert vier Trainingsbilder zu einem einzigen und simuliert so verschiedene Szenenkompositionen und Objektinteraktionen. Sehr effektiv f├╝r das Verstehen komplexer Szenen.
mixup float 0.0 0.0 - 1.0 F├╝gt zwei Bilder und ihre Beschriftungen zu einem zusammengesetzten Bild zusammen. Verbessert die Verallgemeinerungsf├Ąhigkeit des Modells, indem es Rauschen und visuelle Variabilit├Ąt einbringt.
copy_paste float 0.0 0.0 - 1.0 Kopiert Objekte aus einem Bild und f├╝gt sie in ein anderes ein. Das ist n├╝tzlich, um die Anzahl der Objektinstanzen zu erh├Âhen und Objektverdeckung zu lernen.
auto_augment str randaugment - Wendet automatisch eine vordefinierte Erweiterungsrichtlinie an (randaugment, autoaugment, augmix), die durch die Diversifizierung der visuellen Merkmale f├╝r Klassifizierungsaufgaben optimiert werden.
erasing float 0.4 0.0 - 1.0 L├Âscht einen Teil des Bildes w├Ąhrend des Klassifizierungstrainings nach dem Zufallsprinzip, um das Modell dazu zu bringen, sich auf weniger offensichtliche Merkmale f├╝r die Erkennung zu konzentrieren.

Diese Einstellungen k├Ânnen angepasst werden, um den spezifischen Anforderungen des Datensatzes und der jeweiligen Aufgabe gerecht zu werden. Das Experimentieren mit verschiedenen Werten kann helfen, die optimale Erweiterungsstrategie zu finden, die zur besten Modellleistung f├╝hrt.

Info

Weitere Informationen ├╝ber Ausbildungserweiterungen findest du im Referenzteil.

Loggen

Wenn du ein YOLOv8 Modell trainierst, kann es n├╝tzlich sein, die Leistung des Modells im Laufe der Zeit zu verfolgen. An dieser Stelle kommt das Logging 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 aus dem Dropdown-Men├╝ im obigen Codeschnipsel aus und f├╝hre ihn aus. Der ausgew├Ąhlte Logger wird installiert und initialisiert.

Comet

Comet ist eine Plattform, mit der Datenwissenschaftler und Entwickler Experimente und Modelle verfolgen, vergleichen, erkl├Ąren und optimieren k├Ânnen. Sie bietet Funktionen wie Echtzeit-Metriken, Code-Diffs und die Verfolgung von Hyperparametern.

Um Comet zu verwenden:

Beispiel

# pip install comet_ml
import comet_ml

comet_ml.init()

Denke daran, dich auf der Website Comet anzumelden und deinen API-Schl├╝ssel zu erhalten. Diesen musst du zu deinen Umgebungsvariablen oder deinem Skript hinzuf├╝gen, um deine Experimente zu protokollieren.

ClearML

ClearML ist eine Open-Source-Plattform, die die Verfolgung 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.

Um ClearML zu verwenden:

Beispiel

# pip install clearml
import clearml

clearml.browser_login()

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

TensorBoard

TensorBoard ist ein Visualisierungs-Toolkit f├╝r TensorFlow. Es erm├Âglicht dir, deinen TensorFlow Graphen zu visualisieren, quantitative Metriken ├╝ber die Ausf├╝hrung deines Graphen darzustellen und zus├Ątzliche Daten wie Bilder anzuzeigen, die ihn durchlaufen.

Um TensorBoard in Google Colab zu verwenden:

Beispiel

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

Um TensorBoard lokal zu nutzen, f├╝hre den folgenden Befehl aus und sieh dir die Ergebnisse unter http://localhost:6006/ an.

Beispiel

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

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

Nachdem du deinen Logger eingerichtet hast, kannst du mit dem Training deines Modells fortfahren. Alle Trainingsdaten werden automatisch auf der von dir gew├Ąhlten Plattform protokolliert und du kannst auf diese Protokolle zugreifen, um die Leistung deines Modells im Laufe der Zeit zu ├╝berwachen, verschiedene Modelle zu vergleichen und Bereiche mit Verbesserungsbedarf zu identifizieren.



Erstellt am 2023-11-12, Aktualisiert am 2024-02-25
Autoren: Burhan-Q (1), Laughing-q (1), glenn-jocher (9)

Kommentare