Datengeneratoren für KI: Dataset-Klassen erschließen Daten für PyTorch

Eigene Trainingsdaten fließen in ein KI-Modell, wenn die Software auf der Dataset-Klasse von PyTorch aufbaut. Wie das geht, zeigen wir an zwei Beispielen.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht
, KI Midjourney  Collage c’t

(Bild: KI Midjourney | Collage c’t)

Lesezeit: 14 Min.
Inhaltsverzeichnis

Beim Thema künstliche Intelligenz herrscht Goldgräberstimmung: Es gibt kaum eine Datenquelle, der Data Scientists nicht mit der einen oder anderen KI-Methode zu Leibe rücken, um ihr möglicherweise enthaltene Informationsmuster zu entlocken. Allerdings liegen die Daten nur selten in einem Format vor, das für die Weiterverarbeitung mit KI ideal geeignet ist: Exotische Dateiformate wollen auseinandergedröselt werden. Manche Datensätze sind zu groß, um sie am Stück in den Rechner- oder Grafikkartenspeicher zu laden, und müssen zunächst sinnvoll partitioniert werden. Andere Quellen liefern zu wenige Daten, um damit eine KI sinnvoll zu trainieren – hierbei helfen oft künstlich erzeugte Trainingsdaten.

In KI-Frameworks gibt es für solche und ähnliche Aufgaben sogenannte Datengeneratoren. In PyTorch, der KI-Bibliothek für Python, heißt die zuständige Klasse Dataset. Von ihr können Data Scientists eigene Klassen ableiten. Die komplexe Logik, um die Daten effizient in den richtigen Speicher zu bekommen, müssen sie dabei nicht anfassen. Der im Verlauf dieses Artikels entwickelte Code zeigt eine selbst geschriebene Dataset-Klasse, die Bilddateien von der Festplatte liest und an PyTorch weiterreicht. Nach dieser Fingerübung stellen wir Ihnen noch ein Experiment vor, das ergründet, wie robust neuronale Netze gegen mehr oder weniger verfälschte Trainingsdaten sind. Möglich macht das Experiment ebenfalls ein Datengenerator.

Programmieren mit KI
KI-Kompendium: Der Weg zu moderner KI

In der Klassenstruktur von PyTorch bilden Datasets das Bindeglied zwischen einer externen Datenquelle und der eigentlichen KI-Maschinerie. Woher die Daten kommen, ob sie am Stück oder erst einzeln bei Bedarf geladen werden und ob es sich um echte, verfälschte oder gar künstlich erzeugte Daten handelt, ist Sache des Dataset. Im einfachsten Fall liegt die richtige Menge an Daten in einem leicht verdaulichen Format auf der Festplatte. Dann muss das Dataset nicht mehr tun, als sie am Stück zu laden und auf Anforderung jeweils eine Eingabe X und die gewünschte Ausgabe y herauszurücken.