Batch Size
Lerne, wie die Batchgröße die Geschwindigkeit und Genauigkeit beim Trainieren von maschinellem Lernen beeinflusst. Erforsche Hardwarebeschränkungen und optimiere Ultralytics YOLO26 mit AutoBatch.
Im Bereich Machine Learning und insbesondere Deep Learning bezieht sich die Batch Size auf die Anzahl der Trainingsbeispiele, die in einer Iteration des Modelltrainings verwendet werden. Anstatt die gesamten Trainingsdaten auf einmal in das neuronale Netzwerk einzuspeisen – was aufgrund von Speicherbeschränkungen oft rechnerisch unmöglich ist –, wird der Datensatz in kleinere Teilmengen unterteilt, die Batches genannt werden. Das Modell verarbeitet einen Batch, berechnet den Fehler und aktualisiert seine internen Modellgewichte mittels Backpropagation, bevor es mit dem nächsten Batch fortfährt. Dieser Hyperparameter spielt eine entscheidende Rolle bei der Bestimmung sowohl der Trainingsgeschwindigkeit als auch der Stabilität des Lernprozesses.
Link to this sectionDie Dynamik des Trainings mit Batches#
Die Wahl der Batch Size verändert grundlegend, wie der Optimierungsalgorithmus, typischerweise eine Variante des stochastischen Gradientenabstiegs, die Verlustlandschaft navigiert.
- Kleine Batch Sizes: Die Verwendung einer kleinen Anzahl (z. B. 8 oder 16) führt zu "verrauschten" Aktualisierungen. Während die Gradientenschätzung für den gesamten Datensatz weniger genau ist, kann dieses Rauschen dem Modell manchmal helfen, lokalen Minima zu entkommen, was potenziell zu einer besseren Generalisierung führt. Kleinere Batches erfordern jedoch mehr Aktualisierungen pro Epoche, was das Training aufgrund des Overheads in Bezug auf die tatsächliche Zeitdauer verlangsamen kann.
- Große Batch Sizes: Ein größerer Batch (z. B. 128 oder 256) liefert eine genauere Schätzung des Gradienten, was zu einer glatteren Konvergenz der Loss Function führt. Dies ermöglicht eine massive Parallelisierung auf moderner Hardware, was die Berechnung erheblich beschleunigt. Wenn der Batch jedoch zu groß ist, könnte das Modell in scharfen, suboptimalen Minima verharren, was zu Overfitting und einer verringerten Fähigkeit zur Generalisierung auf neue Daten führt.
Link to this sectionAuswirkungen auf Hardware und Speicher#
Anwender müssen eine Batch Size oft aufgrund von Hardwarebeschränkungen und nicht aus rein theoretischen Präferenzen wählen. Deep-Learning-Modelle, insbesondere große Architekturen wie Transformer oder fortschrittliche faltende Netzwerke, werden im VRAM einer GPU gespeichert.
Bei der Verwendung von NVIDIA CUDA zur Beschleunigung muss der VRAM die Modellparameter, den Batch an Eingabedaten und die für die Gradientenberechnung benötigten intermediären Aktivierungsausgaben vorhalten. Wenn die Batch Size den verfügbaren Speicher überschreitet, stürzt das Training mit einem "Out of Memory" (OOM)-Fehler ab. Techniken wie das Mixed Precision-Training werden häufig eingesetzt, um den Speicherverbrauch zu reduzieren, was größere Batch Sizes auf derselben Hardware ermöglicht.
Link to this sectionUnterscheidung verwandter Konzepte#
Um das Training effektiv zu konfigurieren, ist es wichtig, die Batch Size von anderen zeitlichen Begriffen in der Trainingsschleife zu unterscheiden.
- Batch Size vs. Epoch: Eine Epoche stellt einen vollständigen Durchlauf durch den gesamten Trainingsdatensatz dar. Die Batch Size bestimmt, in wie viele Teile die Daten innerhalb dieser Epoche aufgeteilt werden. Wenn du beispielsweise 1.000 Bilder und eine Batch Size von 100 hast, dauert es 10 Iterationen, um eine Epoche abzuschließen.
- Batch Size vs. Iteration: Eine Iteration (oder ein Schritt) ist der Vorgang der Verarbeitung eines Batches und der Aktualisierung der Gewichte. Die Gesamtzahl der Iterationen im Training ist die Anzahl der Batches pro Epoche multipliziert mit der Gesamtzahl der Epochen.
- Batch Size vs. Batch Normalization: Obwohl sie sich den Namen teilen, ist Batch Normalization ein spezifischer Layertyp, der Layer-Eingaben basierend auf dem Mittelwert und der Varianz des aktuellen Batches normalisiert. Diese Technik ist stark von der Batch Size abhängig; ist die Batch Size zu klein (z. B. 2), werden die statistischen Schätzungen unzuverlässig, was die Leistung potenziell verschlechtert.
Link to this sectionPraxisanwendungen#
Die Anpassung der Batch Size ist eine routinemäßige Notwendigkeit beim Einsatz von Computer-Vision-Lösungen in verschiedenen Branchen.
-
Hochauflösende medizinische Bildgebung: Im Bereich AI in healthcare arbeiten Anwender oft mit volumetrischen 3D-Daten wie MRT- oder CT-Scans. Diese Dateien sind extrem umfangreich und speicherintensiv. Um Aufgaben wie Medical Image Analysis oder komplexe Image Segmentation durchzuführen, ohne das System zum Absturz zu bringen, reduzieren Ingenieure die Batch Size oft auf einen sehr kleinen Wert, manchmal sogar auf einen Batch von 1. Hier hat die Verarbeitung hochauflösender Details Priorität gegenüber der reinen Trainingsgeschwindigkeit.
-
Industrielle Qualitätskontrolle: Umgekehrt ist im Bereich AI in manufacturing Geschwindigkeit das A und O. Automatisierte Systeme, die Produkte auf einem Förderband inspizieren, müssen Tausende von Bildern pro Stunde verarbeiten. Während der Inferenz könnten Ingenieure eingehende Kameradatenströme zu größeren Batches aggregieren, um die Auslastung von Edge AI-Geräten zu maximieren und einen hohen Durchsatz für die Defekterkennung in Echtzeit sicherzustellen.
Link to this sectionKonfiguration der Batch Size in Python#
Wenn du das Ultralytics Python-Paket verwendest, ist das Einstellen der Batch Size unkompliziert. Du kannst eine feste Ganzzahl angeben oder die dynamische Einstellung batch=-1 verwenden, die die AutoBatch-Funktion nutzt, um automatisch die maximale Batch Size zu berechnen, die deine Hardware sicher verarbeiten kann.
The following example demonstrates how to train a YOLO26 model—the latest standard for speed and accuracy—using a specific batch setting.
from ultralytics import YOLO
# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")
# Train on the COCO8 dataset
# batch=16 is manually set.
# Alternatively, use batch=-1 for auto-tuning based on available GPU memory.
results = model.train(data="coco8.yaml", epochs=5, batch=16)Für die Verwaltung groß angelegter Experimente und die Visualisierung, wie sich verschiedene Batch Sizes auf deine Trainingsmetriken auswirken, bieten Tools wie die Ultralytics-Plattform eine umfassende Umgebung zur Protokollierung und zum Vergleich von Durchläufen. Das richtige Hyperparameter-Tuning der Batch Size ist oft der letzte Schritt, um die beste Leistung aus deinem Modell herauszuholen.






