Deep Learning Academy · Lektion

Batching, Shuffling und num_workers

Konfigurieren Sie einen DataLoader für mehr Geschwindigkeit.

Lektion 2 von 413 Schritte

Batching, Shuffling und num_workers ist eine kostenlose Deep Learning Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Deep Learning Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Deep Learning Academy-Kurs umfasst insgesamt 4 Lektionen.

Lernen Sie den DataLoader kennen

Ein Dataset liefert jeweils ein Sample, das Training benötigt jedoch Gruppen. Der DataLoader kapselt Ihr Dataset und liefert es in praktischen Batches. 📦

from torch.utils.data import DataLoader
loader = DataLoader(ds)

Batches sparen Zeit

Legen Sie batch_size fest, und der Loader stapelt entsprechend viele Samples zu einem Tensor. Größere Batches nutzen Ihre Hardware besser und gleichen verrauschte Aktualisierungen aus.

loader = DataLoader(ds, batch_size=32)

Ein Batch, gemeinsam gestapelt

Jeder Batch fügt eine neue erste Dimension hinzu. Dreiunddreißig Samples mit der Form 784 werden zu einem einzelnen Tensor mit der Form 32 mal 784, der für das Modell bereit ist.

Über Batches iterieren

Sie durchlaufen den Loader wie jede Python-Sequenz. Bei jedem Schleifendurchlauf erhalten Sie einen Batch aus Eingaben und Labels für Ihren Trainingsschritt.

for xb, yb in loader:
    pred = model(xb)

In jeder Epoche mischen

Wenn Sie shuffle auf True setzen, werden die Samples in jeder Epoche neu angeordnet. Dadurch wird eine zufällige Reihenfolge verhindert, sodass das Modell die Abfolge Ihrer Daten nicht auswendig lernen kann.

loader = DataLoader(ds, batch_size=32, shuffle=True)

Training mischen, Testdaten nicht

Aktivieren Sie das Mischen für den Trainings-Datensatz, aber nicht für Validierung und Test. Die Auswertung misst lediglich die Leistung, daher ist dort eine stabile Reihenfolge unproblematisch.

num_workers lädt parallel

Das Lesen und Dekodieren von Daten kann die GPU ausbremsen. Wenn Sie num_workers auf einen Wert größer als null setzen, werden Hilfsprozesse gestartet, die den nächsten Batch vorbereiten, während das Modell trainiert.

loader = DataLoader(ds, batch_size=32, num_workers=4)

Eine sinnvolle Anzahl von Workern wählen

Ein üblicher Ausgangspunkt für num_workers ist die Anzahl Ihrer CPU-Kerne. Zu viele Worker können den Speicher stark belasten. Messen Sie daher, statt blind zu raten.

pin_memory beschleunigt GPU-Kopien

Setzen Sie beim Training auf einer GPU pin_memory auf True. Dadurch werden Batches in seitengesperrtem Speicher abgelegt, sodass die Übertragung zum Gerät deutlich schneller abläuft.

loader = DataLoader(ds, batch_size=32, pin_memory=True)

Den letzten Batch verarbeiten

Der letzte Batch ist oft kleiner als die übrigen. Setzen Sie drop_last auf True, um ihn zu verwerfen, wenn Ihr Modell für jeden Batch dieselbe Größe benötigt.

loader = DataLoader(ds, batch_size=32, drop_last=True)

Ein Loader pro Aufteilung

In der Praxis erstellen Sie einen separaten Loader für Training, Validierung und Test. Jeder erhält eigene Einstellungen, etwa das Mischen nur für das Training.

Kurze Überprüfung

Was bewirkt es tatsächlich, num_workers auf einen Wert größer als null zu setzen?

Zusammenfassung

Ein DataLoader bildet Batches aus Ihrem Dataset, mischt die Trainingsdaten und verwendet num_workers, um Batches parallel zu laden. So bleibt Ihr Modell versorgt und arbeitet schnell. 🎉

Kostenlos starten

Lerne Python mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
30
Lektionen
120

Häufig gestellte Fragen

Ist die Lektion „Batching, Shuffling und num_workers“ kostenlos?

Ja — der vollständige Text von „Batching, Shuffling und num_workers“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Deep Learning Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Deep Learning Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Batching, Shuffling und num_workers“?

Konfigurieren Sie einen DataLoader für mehr Geschwindigkeit. Du übst Deep Learning Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Deep Learning Academy zu starten?

Keine Vorkenntnisse erforderlich. Deep Learning Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Batching, Shuffling und num_workers“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Deep Learning Academy-Lektion Code schreiben und ausführen?

Ja. Jede Deep Learning Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Eine eigene Dataset-Klasse schreiben
  2. Batching, Shuffling und num_workers
  3. collate_fn für Eingaben variabler Länge
  4. Eingaben normalisieren und standardisieren
← Zurück zu Deep Learning Academy