Einfach erklärt

Ein vollständiger Durchlauf durch die Trainingsdaten. Eine Epoch ist ein kompletter Durchlauf durch alle Trainingsdaten. Wenn du mit Minibatches arbeitest, wird der Datensatz in viele kleine Portionen aufgeteilt. Erst wenn alle Portionen einmal verarbeitet wurden, ist eine Epoch vorbei. Danach beginnt häufig die nächste Epoch – meist mit neu gemischten Daten.

Kurz: Alle Daten einmal gesehen → eine Epoch.

Ganz einfache Beispiele

Runden im Stadion: Eine Runde entspricht einmal um die Bahn. Mehrere Runden = mehrere Epochen.

Kartenset üben: Du gehst einmal durch alle Karteikarten – das ist eine Epoch. Dann mischst du neu und beginnst von vorne.

Wand streichen: Eine Schicht Farbe auf der ganzen Wand ist eine Epoch. Die zweite Schicht ist die zweite Epoch.

Professionelle Definition

In Trainings-Workflows bezeichnet Epoch den vollständigen Pass des Modells über den gesamten Trainingsdatensatz. Eine Epoch besteht typischerweise aus vielen Iterations/Steps (ein Step = ein Minibatch vorwärts/rückwärts). Zwischen den Epochen werden die Daten oft neu gemischt (Shuffling), um bessere Generalisierung zu erzielen.

Abgrenzungen und Praxisfälle:

  • Iteration/Step: Eine einzelne Batch-Verarbeitung. Viele Steps ergeben eine Epoch.
  • Steps per Epoch: Anzahl der Batches, die den Datensatz einmal abdecken. Bei Streaming/Iterable Datasets definiert man die Schrittlänge pro Epoch ausdrücklich.
  • Validierung & Checkpoints: Nach oder während einer Epoch werden häufig Validierungsmetriken berechnet und Gewichte gespeichert.
  • Verteiltes Training: Pro Epoch sollte der Sampler synchronisiert werden, damit alle Daten fair gesehen werden.
  • Teil-Epochen: Bei sehr großen Datenmengen setzt man oft feste Steps pro Epoch, auch wenn nicht alle Beispiele gesehen werden.

Der Epochenbegriff ist zentral für Lernratenpläne, Early Stopping, Logging und Reproduzierbarkeit.

Praxis-Tipps

  • Klare Begriffe: Epoch = kompletter Datensatz, Step = ein Batch. Beide im Log festhalten.
  • Shuffling pro Epoch aktivieren (oder Sampler korrekt konfigurieren), um Leckeffekte zu vermeiden.
  • Validation-Takt wählen: z. B. am Ende jeder Epoch validieren und Checkpoints speichern.
  • Steps/Epoch definieren, wenn du Streaming oder unendliche Datasets nutzt; so bleiben LR‑Schedules konsistent.
  • Distributed Training: Pro Epoch set_epoch(i) beim Sampler aufrufen, damit Datenaufteilung korrekt ist.
  • Lernraten‑Schedule und Early Stopping an Epochen oder Steps koppeln – aber konsistent bleiben.
  • Reproduzierbarkeit: Seeds setzen, Batchgröße und Sampler dokumentieren, Metriken pro Epoch speichern.

Quellen

  1. Goodfellow, Bengio, Courville (2016) – Deep Learning (Training & Optimization)
    https://www.deeplearningbook.org/
  2. Keras – Model.fit() (Parameter epochs)
    https://keras.io/api/models/model_training_apis/#fit-method
  3. PyTorch Tutorial – Training Loops & Data Loading
    https://pytorch.org/tutorials/beginner/basics/optimization_tutorial.html
  4. PyTorch – DistributedSampler (Synchronisierung pro Epoch)
    https://pytorch.org/docs/stable/data.html#torch.utils.data.distributed.DistributedSampler
  5. Hugging Face Transformers – Trainingsargumente (num_train_epochs)
    https://huggingface.co/docs/transformers/main_classes/trainer#transformers.TrainingArguments.num_train_epochs
  6. fast.ai – Trainingsschleife & Epochen, Checkpoints, Schedules
    https://docs.fast.ai/learner.html#fit

Mehr dazu finden Sie in unseren KI Kursen & Schulungen