Ultralytics YOLO27: Trag dich in die Warteliste ein.
YOLO lizenzieren
Zurück zum Ultralytics-Glossar

YAML

YAML ist ein menschenlesbares Datenformat, das Einrückungen zur Strukturierung verwendet und häufig für ML-Datensatz- und Trainingskonfigurationen eingesetzt wird. Syntax, Fallstricke und Alternativen.

YAML (rekursives Akronym für „YAML ist keine Auszeichnungssprache“) ist eine für Menschen lesbare Sprache zur Serialisierung von Daten, die vor allem für Konfigurationsdateien verwendet wird. Verschachtelte Daten werden durch Einrückungen statt Klammern oder Tags beschrieben. YAML unterstützt Kommentare und lässt sich direkt auf Dictionaries, Listen, Zeichenketten und Zahlen von Programmiersprachen abbilden. Dadurch können Menschen dieselbe Datei leicht bearbeiten und Programme sie einfach laden. Beim maschinellen Lernen enthalten YAML-Dateien außerhalb des Codes Pfade zu Datensätzen, Modellarchitekturen, Hyperparameter und Pipeline-Schritte. So lassen sich Experimente einfach reproduzieren, überprüfen und in Git versionieren. Die aktuelle Spezifikation ist YAML 1.2.2. YAML 1.2 wurde so entworfen, dass gültiges JSON auch gültiges YAML ist.

Grundlagen der YAML-Syntax#

Ein YAML-Dokument besteht aus drei Arten von Knoten. Zuordnungen sind Paare aus key: value, Sequenzen sind Elemente, die mit - beginnen oder inline als [a, b] geschrieben werden, und Skalare sind einzelne Werte wie Zeichenketten, Zahlen und boolesche Werte. Verschachtelungen werden durch Leerzeichen festgelegt; Tabulatoren sind für Einrückungen nicht zulässig. Mit # beginnt ein Kommentar, --- trennt mehrere Dokumente in einer Datei, und Anker (&name) mit Aliasen (*name) ermöglichen die Wiederverwendung eines Blocks an anderer Stelle in der Datei. Zeichenketten benötigen in der Regel keine Anführungszeichen. Das hält Dateien kurz, bedeutet aber auch, dass der Parser den Typ jedes Werts ohne Anführungszeichen bestimmt.

YAML in Arbeitsabläufen des maschinellen Lernens#

Wenn Einstellungen in YAML gespeichert sind, ist klar getrennt, was ein Experiment bewirkt und wie der Code es umsetzt: Ein Team kann Datensätze austauschen oder Lernraten ändern, indem es eine Datei bearbeitet, die genaue Konfiguration mit Experimentverfolgung festhalten und Änderungen in Pull Requests überprüfen. YAML kommt in vielen Werkzeugen der gesamten Entwicklungskette zum Einsatz, darunter Hydra zum Zusammenstellen von Experimentkonfigurationen, GitHub Actions für Pipelines zur kontinuierlichen Integration, Docker Compose für Anwendungen mit mehreren Containern und Kubernetes-Manifeste für die Bereitstellung von Modellen. Ultralytics YOLO verwendet YAML auf drei Ebenen: Datensatzdateien führen Bildordner und Klassennamen auf, Modelldateien wie yolo26.yaml definieren die Ebenen und die n- bis x-Skalierungen von YOLO26, und eine Standardkonfigurationsdatei enthält sämtliche Einstellungen für Training, Vorhersage und Export, die sich mit einer benutzerdefinierten Datei überschreiben lassen, die mit cfg= übergeben wird. Dieser Auszug zeigt den Aufbau der mitgelieferten Datensatzdatei coco8.yaml:

path: coco8 # dataset root dir
train: images/train # train images (relative to 'path')
val: images/val # val images (relative to 'path')

# Classes
names:
  0: person
  1: bicycle
  2: car
  # ... up to 79: toothbrush

Beim Training wird die Datei anhand ihres Namens geladen, die Bildordner werden über path aufgelöst, und die Anzahl sowie die Namen der Klassen stammen aus names:

from ultralytics import YOLO

# Ein vortrainiertes YOLO26-Nano-Modell laden
model = YOLO("yolo26n.pt")

# Mit dem in der YAML-Datei beschriebenen Datensatz trainieren
results = model.train(data="coco8.yaml", epochs=3, imgsz=640)

Für einen benutzerdefinierten Datensatz genügt eine eigene YAML-Datei mit denselben Schlüsseln, Verweisen auf seine Bilder und einer Liste seiner Klassen im Ultralytics-Format für Erkennungsdatensätze.

YAML im Vergleich zu JSON und TOML#

  • JSON: Verwendet geschweifte und eckige Klammern sowie Schlüssel in Anführungszeichen, unterstützt keine Kommentare und wird überall gleich geparst. JSON eignet sich eher für Daten, die zwischen Programmen ausgetauscht werden, etwa API-Antworten und gespeicherte Vorhersagen, als für Dateien, die Menschen bearbeiten.
  • TOML: Ein an INI angelehntes Format mit expliziten Typen und weniger Problemen durch Einrückungen, das von pyproject.toml in Python verwendet wird. Für stark verschachtelte Daten ist es weniger geeignet.
  • XML: Eine umfangreiche, auf Tags basierende Auszeichnungssprache, die noch in älteren Anmerkungsformaten wie Pascal VOC vorkommt, aber für neue Konfigurationsdateien nur selten gewählt wird.

Häufige Fallstricke bei YAML#

Die meisten YAML-Fehler entstehen durch Einrückungen: Ein Tabulator oder ein falsch ausgerichtetes Leerzeichen verändert die Struktur oder lässt den Parser mit einem ScannerError oder ParserError abbrechen. Weniger offensichtliche Probleme entstehen durch die implizite Typumwandlung. PyYAML, der Parser, den die meisten Python-Projekte verwenden, folgt den älteren Regeln von YAML 1.1. Dabei werden manche Wörter ohne Anführungszeichen in boolesche Werte umgewandelt, und Fließkommazahlen benötigen einen Dezimalpunkt. Das Laden nicht vertrauenswürdiger Dateien mit yaml.unsafe_load oder UnsafeLoader von PyYAML kann beliebige Python-Objekte erzeugen und Code ausführen. Konfigurationscode verwendet daher yaml.safe_load, das nur einfache Datentypen erstellt:

import yaml

config = """
model: yolo26n.pt
epochs: 100
lr0: 1e-3
python: 3.10
country: NO
classes: [person, car]
"""

# safe_load builds plain Python dicts, lists, and scalars from the text
data = yaml.safe_load(config)
for key, value in data.items():
    print(f"{key}: {value!r} ({type(value).__name__})")

Die Ausgabe zeigt drei überraschende Ergebnisse: lr0 wird als Zeichenkette '1e-3' geladen, weil der Dezimalpunkt fehlt, python: 3.10 wird zur Gleitkommazahl 3.1, und der Ländercode NO wird zum booleschen Wert False – eine YAML-1.1-Regel, die als Norwegen-Problem bekannt ist. Beim YAML-1.2-Kernschema wird 1e-3 als Gleitkommazahl geladen und NO bleibt eine Zeichenkette, während 3.10 weiterhin zu 3.1 wird.

Lösungen entdecken

Computer Vision im Sport

Computer Vision im Sport

Entdecke, wie Ultralytics YOLO die Sportbildanalyse voranbringt – mit Spieler- und Ballverfolgung, Leistungsanalysen, Erkenntnissen für das Coaching und der Rehabilitation von Athleten.
Mehr erfahren
Computer Vision für Luftbilder

Computer Vision für Luftbilder

Verwandle Drohnen- und Luftbilder mit Ultralytics YOLO in Echtzeit-Erkenntnisse für Landwirtschaft, Aquakultur, Naturschutz und Geodatenanalyse.
Mehr erfahren
Computer Vision in der Luft- und Raumfahrt

Computer Vision in der Luft- und Raumfahrt

Setze Computer Vision in der Luft- und Raumfahrt mit Ultralytics YOLO ein – für Flugzeuginspektionen, die Erkennung von Fremdkörpern auf Start- und Landebahnen, den Bodenbetrieb am Flughafen und die Erkennung von Verbundwerkstofffehlern.
Mehr erfahren
Computer Vision im Sicherheitsbereich

Computer Vision im Sicherheitsbereich

Schütze jeden Standort mit Ultralytics YOLO-Modellen. Vision-KI ermöglicht die Überwachung von Grundstücksgrenzen, die Erkennung von Bedrohungen, die Kennzeichenerkennung und die Sicherheit am Arbeitsplatz.
Mehr erfahren
Computer Vision in der Robotik

Computer Vision in der Robotik

Mach Maschinen mit Ultralytics YOLO-Modellen leistungsfähiger. Vision-KI in der Robotik ermöglicht autonome Navigation, Wahrnehmung, Objektverfolgung und Steuerung in Echtzeit.
Mehr erfahren
Bildverarbeitung in der Logistik

Bildverarbeitung in der Logistik

Optimiere die Logistik mit Ultralytics YOLO-Modellen. Vision AI ermöglicht die Paketprüfung, Sortierung und Fahrzeugverfolgung sowie die Sicherheitsüberwachung von Lagerhäusern in Echtzeit.
Mehr erfahren
Bildverarbeitung im Einzelhandel

Bildverarbeitung im Einzelhandel

Gestalte den Einzelhandel mit Ultralytics YOLO-Modellen neu. Vision AI ermöglicht Bestandsverfolgung, Regalüberwachung und Warteschlangenmanagement und liefert bessere Einblicke in das Kundenverhalten.
Mehr erfahren
Bildverarbeitung im Gesundheitswesen

Bildverarbeitung im Gesundheitswesen

Entwickle Lösungen für das Gesundheitswesen mit Ultralytics YOLO-Modellen. Vision AI ermöglicht im Gesundheitswesen schnellere medizinische Bildgebung, bessere Diagnostik und die Überwachung von Patienten.
Mehr erfahren
Computer Vision in der Fertigung

Computer Vision in der Fertigung

Optimiere die Fertigung mit Ultralytics-YOLO-Modellen. Vision AI ermöglicht Qualitätskontrolle, Fehlererkennung, die Überprüfung der Einhaltung von Vorgaben zu persönlicher Schutzausrüstung und die Automatisierung von Montagelinien.
Mehr erfahren
Computer Vision in der Automobilbranche

Computer Vision in der Automobilbranche

Setze Computer Vision in der Automobilbranche mit Ultralytics-YOLO-Modellen ein. Vision AI verbessert die Verkehrssicherheit, Fahrerassistenz und Fahrzeugautomatisierung – für intelligentere Straßen.
Mehr erfahren
Computer Vision in der Landwirtschaft

Computer Vision in der Landwirtschaft

Setze mit Ultralytics YOLO-Modellen KI für Bildverarbeitung in der intelligenten Landwirtschaft ein. Ermögliche die Überwachung von Nutzpflanzen, die Verfolgung von Nutztieren und Präzisionslandwirtschaft für höhere und nachhaltigere Erträge.
Mehr erfahren

Lass uns gemeinsam die Zukunft der KI gestalten!

Starte deine Reise in die Zukunft des maschinellen Lernens