Entdecken Sie die Auswirkungen der Batch-Größe auf Deep Learning. Optimieren Sie Trainingsgeschwindigkeit, Speichernutzung und Modellleistung effizient.
Die Chargengröße ist ein zentraler Hyperparameter im Bereich des Bereich des maschinellen Lernens, der die Anzahl der verarbeiteten Trainingsdaten bestimmt, bevor das Modell seine internen Parameter aktualisiert. Anstatt einen gesamten Datensatz auf einmal zu analysieren - was aufgrund von Speicherbeschränkungen oft rechnerisch aufgrund von Speicherbeschränkungenrechnerisch unmöglich ist werden die Daten in kleinere Gruppen, so genannte Batches, unterteilt. Diese Aufteilung bestimmt die Stabilität des Lernprozesses Lernprozesses, die Geschwindigkeit der Berechnung und den Speicherbedarf des GPU während des Trainings. Die Wahl der Stapelgröße ist eine Gratwanderung zwischen der Recheneffizienz und der Qualität der Konvergenz des Modells. Konvergenz.
Die Wahl der Chargengröße ändert grundlegend die Art und Weise, wie ein neuronales Netz lernt. Wenn die Stapelgröße auf einen auf einen niedrigeren Wert gesetzt, aktualisiert das Modell seine Modellgewichte häufiger, wodurch Rauschen in den den Gradientenabstiegsprozess ein. Dieses Rauschen kann kann von Vorteil sein, da es dem Optimierungsalgorithmus oft hilft lokalen Minima zu entkommen und robustere Lösungen zu finden, was dazu beiträgt Überanpassung zu verhindern. Umgekehrt bieten größere Losgrößen eine genauere Schätzung des Gradienten, was zu gleichmäßigeren und stabileren Aktualisierungen führt, allerdings benötigen sie jedoch erheblich mehr Hardwarespeicher und können manchmal zu einer "Generalisierungslücke" führen, bei der das Modell gut auf Trainingsdaten, aber weniger effektiv auf ungesehenen Daten funktioniert.
Die Obergrenze dieses Parameters wird häufig durch die Hardwarekapazitäten vorgegeben. Moderne Hardware-Beschleuniger, wie die in beschrieben in NVIDIA Leitfaden zur Deep Learning-Leistung beschrieben sind, verlassen sich auf die parallele Verarbeitung großer Datenblöcke von Daten gleichzeitig zu verarbeiten. Daher sollte eine Stapelgröße verwendet werden, die mit der Architektur des Prozessors übereinstimmt - in der Regel Zweierpotenzen Potenzen von zwei wie 32, 64 oder 128 - den Durchsatz maximieren und die Gesamttrainingszeit pro Epoche.
Ein Verständnis dafür, wie dieser Parameter einzustellen ist, ist für den Einsatz von effektiven KI-Lösungen in verschiedenen Branchen.
Bei Verwendung des Ultralytics Pythonist die Konfiguration der Losgröße
Größe ist einfach zu konfigurieren. Die Website batch Argument können Sie genau festlegen, wie viele Bilder das Modell
sehen soll, bevor die Gewichte aktualisiert werden. Wenn es auf -1kann die Bibliothek auch eine
AutoBatch-Funktion um automatisch die maximale
maximale Stapelgröße, die Ihre Hardware unterstützen kann.
from ultralytics import YOLO
# Load the latest YOLO11 model
model = YOLO("yolo11n.pt")
# Train the model on the COCO8 dataset with a specific batch size
# A batch size of 32 balances speed and memory usage for most standard GPUs
results = model.train(data="coco8.yaml", epochs=50, batch=32)
Für Praktiker ist es wichtig, "Batch Size" von ähnlichen Begriffen zu unterscheiden, die in Deep Learning-Frameworks.