Erfahren Sie, wie sich die Batchgröße auf die Trainingsgeschwindigkeit und -genauigkeit beim maschinellen Lernen auswirkt. Entdecken Sie Hardware-Einschränkungen und optimieren Sie Ultralytics mit AutoBatch.
Im Bereich des maschinellen Lernens und insbesondere des Deep Learning bezieht sich die Batchgröße 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, sogenannte Batches, unterteilt. Das Modell verarbeitet einen Batch, berechnet den Fehler und aktualisiert seine internen Modellgewichte über Backpropagation, bevor es zum nächsten Batch übergeht. Dieser Hyperparameter spielt eine entscheidende Rolle bei der Bestimmung sowohl der Trainingsgeschwindigkeit als auch der Stabilität des Lernprozesses .
Die Wahl der Batchgröße verändert grundlegend, wie der Optimierungsalgorithmus, typischerweise eine Variante des stochastischen Gradientenabstiegs, die Verlustlandschaft navigiert.
Praktiker müssen die Batchgröße oft aufgrund von Hardwarebeschränkungen und nicht aufgrund rein theoretischer Präferenzen auswählen. Deep-Learning-Modelle, insbesondere große Architekturen wie Transformer oder fortgeschrittene Convolutional Networks, werden im VRAM eines GPU.
Bei Verwendung von NVIDIA CUDA zur Beschleunigung verwendet wird, muss der VRAM die Modellparameter, den Stapel der Eingabedaten und die für die Gradientenberechnung erforderlichen Zwischenaktivierungsausgaben enthalten. Wenn die Stapelgröße den verfügbaren Speicher übersteigt, bricht das Training mit einem „Out of Memory”-Fehler (OOM) ab. Techniken wie Mixed-Precision-Training werden häufig eingesetzt, um den Speicherverbrauch zu reduzieren und größere Stapelgrößen auf derselben Hardware zu ermöglichen.
Um das Training effektiv zu konfigurieren, ist es unerlässlich, die Batchgröße von anderen zeitlichen Begriffen in der Trainingsschleife zu unterscheiden .
Die Anpassung der Stapelgröße ist eine routinemäßige Notwendigkeit bei der Bereitstellung von Computer-Vision-Lösungen in verschiedenen Branchen.
Bei Verwendung des Ultralytics Python, die Einstellung der Stapelgröße
ist unkompliziert. Sie können eine feste Ganzzahl angeben oder die dynamische batch=-1 Einstellung, die
die AutoBatch-Funktion automatisch die
maximale Stapelgröße berechnen, die Ihre Hardware sicher verarbeiten kann.
Das folgende Beispiel zeigt, wie ein YOLO26-Modell– der aktuelle Standard für Geschwindigkeit und Genauigkeit – mit einer bestimmten Batch-Einstellung trainiert wird.
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 unterschiedliche Batch-Größen auf Ihre Trainingsmetriken auswirken, bieten Tools wie die Ultralytics eine umfassende Umgebung für die Protokollierung und den Vergleich von Durchläufen. Die richtige Hyperparameter-Optimierung der Batch-Größe ist oft der letzte Schritt, um die beste Leistung aus Ihrem Modell herauszuholen.