Meet YOLO26: next-gen vision AI.

Link to this sectionTensorRT-Export für YOLO26-Modelle#

Die Bereitstellung von Computer Vision-Modellen in Hochleistungsumgebungen erfordert oft ein Format, das Geschwindigkeit und Effizienz maximiert. Dies gilt insbesondere, wenn du dein Modell auf NVIDIA-GPUs einsetzt.

Durch die Nutzung des TensorRT-Exportformats kannst du deine Ultralytics YOLO26-Modelle für eine schnelle und effiziente Inferenz auf NVIDIA-Hardware optimieren. Dieser Leitfaden bietet dir einfach verständliche Schritte für den Konvertierungsprozess und hilft dir dabei, NVIDIAs fortschrittliche Technologie in deinen Deep Learning-Projekten optimal zu nutzen.

Link to this sectionTensorRT#

NVIDIA TensorRT optimization workflow

TensorRT, entwickelt von NVIDIA, ist ein fortschrittliches Software Development Kit (SDK) für Deep-Learning-Inferenz mit hoher Geschwindigkeit. Es ist hervorragend für Echtzeitanwendungen wie die Objekterkennung geeignet.

Dieses Toolkit optimiert Deep-Learning-Modelle für NVIDIA-GPUs und führt zu schnelleren und effizienteren Abläufen. TensorRT-Modelle durchlaufen eine TensorRT-Optimierung, die Techniken wie Layer Fusion, Präzisionskalibrierung (INT8 und FP16), dynamische Tensor-Speicherverwaltung und Kernel-Auto-Tuning umfasst. Die Konvertierung von Deep-Learning-Modellen in das TensorRT-Format ermöglicht es Entwicklern, das volle Potenzial von NVIDIA-GPUs auszuschöpfen.

TensorRT ist für seine Kompatibilität mit verschiedenen Modellformaten bekannt, darunter TensorFlow, PyTorch und ONNX, und bietet Entwicklern eine flexible Lösung zur Integration und Optimierung von Modellen aus unterschiedlichen Frameworks. Diese Vielseitigkeit ermöglicht eine effiziente Modellbereitstellung in verschiedensten Hardware- und Softwareumgebungen.

Link to this sectionHauptmerkmale von TensorRT-Modellen#

TensorRT-Modelle bieten eine Reihe von Hauptmerkmalen, die zu ihrer Effizienz und Effektivität bei der Hochgeschwindigkeits-Deep-Learning-Inferenz beitragen:

  • Präzisionskalibrierung: TensorRT unterstützt die Präzisionskalibrierung, mit der Modelle für spezifische Genauigkeitsanforderungen feinabgestimmt werden können. Dazu gehört die Unterstützung für Formate mit reduzierter Präzision wie INT8 und FP16, was die Inferenzgeschwindigkeit weiter steigern kann, während akzeptable Genauigkeitswerte erhalten bleiben.

  • Layer Fusion: Der TensorRT-Optimierungsprozess umfasst Layer Fusion, bei der mehrere Schichten eines neuronalen Netzwerks zu einer einzigen Operation zusammengefasst werden. Dies reduziert den Rechenaufwand und verbessert die Inferenzgeschwindigkeit durch Minimierung von Speicherzugriffen und Berechnungen.

TensorRT neural network layer fusion optimization

  • Dynamische Tensor-Speicherverwaltung: TensorRT verwaltet die Tensor-Speichernutzung während der Inferenz effizient, reduziert den Speicher-Overhead und optimiert die Speicherzuweisung. Dies führt zu einer effizienteren Auslastung des GPU-Speichers.

  • Automatisches Kernel-Tuning: TensorRT wendet automatisches Kernel-Tuning an, um den am besten optimierten GPU-Kernel für jede Schicht des Modells auszuwählen. Dieser adaptive Ansatz stellt sicher, dass das Modell die Rechenleistung der GPU voll ausschöpft.

Link to this sectionBereitstellungsoptionen in TensorRT#

Bevor wir uns den Code für den Export von YOLO26-Modellen in das TensorRT-Format ansehen, sollten wir verstehen, wo TensorRT-Modelle üblicherweise eingesetzt werden.

TensorRT bietet mehrere Bereitstellungsoptionen, wobei jede Option eine andere Balance zwischen einfacher Integration, Leistungsoptimierung und Flexibilität bietet:

  • Bereitstellung innerhalb von TensorFlow: Diese Methode integriert TensorRT in TensorFlow, sodass optimierte Modelle in einer vertrauten TensorFlow-Umgebung ausgeführt werden können. Dies ist nützlich für Modelle mit einer Mischung aus unterstützten und nicht unterstützten Schichten, da TF-TRT diese effizient handhaben kann.

NVIDIA TensorRT optimization workflow

  • Standalone TensorRT Runtime API: Bietet eine granulare Steuerung und ist ideal für leistungskritische Anwendungen. Es ist komplexer, ermöglicht jedoch die benutzerdefinierte Implementierung nicht unterstützter Operatoren.

  • NVIDIA Triton Inference Server: Eine Option, die Modelle aus verschiedenen Frameworks unterstützt. Besonders geeignet für Cloud- oder Edge-Inferenz, bietet sie Funktionen wie gleichzeitige Modellausführung und Modellanalyse.

Link to this sectionExportieren von YOLO26-Modellen nach TensorRT#

Du kannst die Ausführungseffizienz verbessern und die Leistung optimieren, indem du YOLO26-Modelle in das TensorRT-Format konvertierst.

Link to this sectionInstallation#

Um das erforderliche Paket zu installieren, führe Folgendes aus:

Installation
# Install the required package for YOLO26
pip install ultralytics

Detaillierte Anweisungen und Best Practices bezüglich des Installationsprozesses findest du in unserem YOLO26 Installationsleitfaden. Solltest du bei der Installation der erforderlichen Pakete für YOLO26 auf Schwierigkeiten stoßen, ziehe unseren Leitfaden für häufige Probleme für Lösungen und Tipps zu Rate.

Link to this sectionVerwendung#

Bevor du mit den Nutzungshinweisen beginnst, schaue dir unbedingt die Auswahl an YOLO26-Modellen von Ultralytics an. Dies hilft dir dabei, das am besten geeignete Modell für deine Projektanforderungen auszuwählen.

Das TensorRT-Format unterstützt die Modi Export, Predict und Validate. Inferenz und Validierung erfordern eine NVIDIA-GPU. Exportiere dein Modell und lade anschließend das exportierte Modell, um Inferenz durchzuführen oder dessen Genauigkeit zu validieren.

Exportieren
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to TensorRT format
model.export(format="engine")  # creates 'yolo26n.engine'
Vorhersage
from ultralytics import YOLO

# Load the exported TensorRT model
model = YOLO("yolo26n.engine")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Validieren
from ultralytics import YOLO

# Load the exported TensorRT model
model = YOLO("yolo26n.engine")

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

Link to this sectionExport-Argumente#

ArgumentTypStandardBeschreibung
formatstr'engine'Zielformat für das exportierte Modell, das die Kompatibilität mit verschiedenen Bereitstellungsumgebungen definiert.
imgszint oder tuple640Gewünschte Bildgröße für den Modelleingang. Kann ein Integer für quadratische Bilder oder ein Tupel (height, width) für spezifische Dimensionen sein.
halfboolFalseAktiviert die FP16-Quantisierung (Halbpräzision), wodurch die Modellgröße reduziert und die Inferenz auf unterstützter Hardware potenziell beschleunigt wird.
int8boolFalseAktiviert die INT8-Quantisierung, wodurch das Modell weiter komprimiert und die Inferenz bei minimalem Genauigkeitsverlust beschleunigt wird, primär für Edge-Geräte.
dynamicboolFalseErmöglicht dynamische Eingabegrößen, was die Flexibilität bei der Handhabung variierender Bilddimensionen erhöht.
simplifyboolTrueVereinfacht den Modellgraphen mit onnxslim, was die Leistung und Kompatibilität potenziell verbessert.
workspacefloat oder NoneNoneLegt die maximale Arbeitsbereichsgröße in GiB für TensorRT-Optimierungen fest und balanciert Speichernutzung und Leistung aus; verwende None für die automatische Zuweisung durch TensorRT bis zum Geräte-Maximum.
nmsboolFalseFügt Non-Maximum Suppression (NMS) hinzu, was für eine genaue und effiziente Nachbearbeitung der Erkennung unerlässlich ist.
batchint1Legt die Batch-Inferenzgröße des exportierten Modells oder die maximale Anzahl an Bildern fest, die das exportierte Modell gleichzeitig im predict-Modus verarbeitet.
datastr'coco8.yaml'Pfad zur Konfigurationsdatei des Datensatzes (Standard: coco8.yaml), essentiell für die Quantisierung.
fractionfloat1.0Gibt den Teil des Datensatzes an, der für die INT8-Quantisierungskalibrierung verwendet werden soll. Ermöglicht die Kalibrierung auf einer Teilmenge des vollständigen Datensatzes, nützlich für Experimente oder bei begrenzten Ressourcen. Wenn nicht bei aktivierter INT8-Option angegeben, wird der gesamte Datensatz verwendet.
devicestrNoneGibt das Gerät für den Export an: GPU (device=0), DLA für NVIDIA Jetson (device=dla:0 oder device=dla:1).
Tipp

Bitte stelle sicher, dass du eine GPU mit CUDA-Unterstützung verwendest, wenn du nach TensorRT exportierst.

Für weitere Details zum Exportprozess besuche die Dokumentationsseite von Ultralytics zum Thema Exportieren.

Link to this sectionExportieren nach TensorRT mit INT8-Quantisierung#

Der Export von Ultralytics YOLO-Modellen mit TensorRT und INT8-Präzision führt eine Post-Training-Quantisierung (PTQ) durch. TensorRT nutzt für PTQ eine Kalibrierung, die die Verteilung der Aktivierungen innerhalb jedes Aktivierungs-Tensors misst, während das YOLO-Modell die Inferenz an repräsentativen Eingabedaten verarbeitet, und nutzt diese Verteilung dann zur Schätzung der Skalenwerte für jeden Tensor. Jeder Aktivierungs-Tensor, der für eine Quantisierung in Frage kommt, hat eine zugeordnete Skala, die durch einen Kalibrierungsprozess abgeleitet wird.

Bei der Verarbeitung implizit quantisierter Netzwerke nutzt TensorRT INT8 opportunistisch, um die Layer-Ausführungszeit zu optimieren. Wenn eine Schicht in INT8 schneller läuft und quantisierte Skalen für ihre Dateneingaben und -ausgaben zugewiesen hat, wird dieser Schicht ein Kernel mit INT8-Präzision zugewiesen; andernfalls wählt TensorRT eine Präzision von entweder FP32 oder FP16 für den Kernel, je nachdem, was für diese Schicht zu einer kürzeren Ausführungszeit führt.

Tipp

Es ist entscheidend, sicherzustellen, dass dasselbe Gerät, das die TensorRT-Modellgewichte für die Bereitstellung nutzt, auch für den Export mit INT8-Präzision verwendet wird, da die Kalibrierungsergebnisse je nach Gerät variieren können.

Link to this sectionKonfiguration des INT8-Exports#

Die Argumente, die bei der Verwendung von export für ein Ultralytics YOLO-Modell bereitgestellt werden, beeinflussen die Leistung des exportierten Modells maßgeblich. Sie müssen außerdem basierend auf den verfügbaren Geräteressourcen ausgewählt werden, wobei die Standardargumente für die meisten Ampere (oder neuere) diskreten NVIDIA-GPUs funktionieren sollten. Der verwendete Kalibrierungsalgorithmus ist "MINMAX_CALIBRATION" für GPU-Exporte, während DLA-Exporte auf NVIDIA Jetson "ENTROPY_CALIBRATION_2" verwenden. Weitere Details zu den verfügbaren Optionen findest du im TensorRT Developer Guide. Tests von Ultralytics haben ergeben, dass "MINMAX_CALIBRATION" die beste Wahl für GPU-Exporte ist, und der Algorithmus wird automatisch basierend auf dem Exportgerät ausgewählt.

  • workspace : Steuert die Größe (in GiB) der Gerätespeicherzuweisung während der Konvertierung der Modellgewichte.

    • Passe den workspace-Wert entsprechend deinen Kalibrierungsanforderungen und der verfügbaren Ressourcen an. Während ein größerer workspace die Kalibrierungszeit verlängern kann, ermöglicht er TensorRT, ein breiteres Spektrum an Optimierungstaktiken zu explorieren, was die Modellleistung und Genauigkeit potenziell erhöht. Umgekehrt kann ein kleinerer workspace die Kalibrierungszeit reduzieren, aber die Optimierungsstrategien einschränken, was die Qualität des quantisierten Modells beeinträchtigen kann.

    • Der Standardwert ist workspace=None, was TensorRT erlaubt, Speicher automatisch zuzuweisen. Bei manueller Konfiguration muss dieser Wert möglicherweise erhöht werden, falls die Kalibrierung abstürzt (ohne Warnung beendet wird).

    • TensorRT meldet UNSUPPORTED_STATE während des Exports, wenn der Wert für workspace größer ist als der dem Gerät zur Verfügung stehende Speicher; dies bedeutet, dass der Wert für workspace verringert oder auf None gesetzt werden sollte.

    • Wenn workspace auf den Maximalwert eingestellt ist und die Kalibrierung fehlschlägt oder abstürzt, erwäge die Verwendung von None für die automatische Zuweisung oder reduziere die Werte für imgsz und batch, um die Speicheranforderungen zu senken.

    • Denk daran: Die Kalibrierung für INT8 ist gerätespezifisch; das Ausleihen einer "High-End"-GPU für die Kalibrierung könnte zu einer schlechten Leistung führen, wenn die Inferenz später auf einem anderen Gerät ausgeführt wird.

  • batch : Die maximale Batch-Größe, die für die Inferenz verwendet wird. Während der Inferenz können kleinere Batches verwendet werden, aber die Inferenz akzeptiert keine Batches, die größer sind als angegeben.

Hinweis

Die Verwendung kleiner Batches kann zu einer ungenauen Skalierung während der INT8-Kalibrierung führen. Dies liegt daran, dass der Prozess sich auf Basis der Daten anpasst, die er sieht. Kleine Batches erfassen möglicherweise nicht den gesamten Wertebereich, was zu Problemen bei der endgültigen Kalibrierung führt. Die Verwendung einer größeren Batch-Größe trägt dazu bei, repräsentativere Kalibrierungsergebnisse sicherzustellen.

Experimente durch NVIDIA führten zur Empfehlung, bei der INT8-Quantisierungskalibrierung mindestens 500 Kalibrierungsbilder zu verwenden, die repräsentativ für die Daten deines Modells sind. Dies ist ein Richtwert und keine harte Anforderung, und du wirst experimentieren müssen, was für eine gute Leistung auf deinem Datensatz erforderlich ist. Da die Kalibrierungsdaten für die INT8-Kalibrierung mit TensorRT erforderlich sind, stelle sicher, dass du das Argument data verwendest, wenn int8=True für TensorRT gilt, und nutze data="my_dataset.yaml", um die Bilder aus der Validierung zur Kalibrierung heranzuziehen. Wenn beim Export nach TensorRT mit INT8-Quantisierung kein Wert für data übergeben wird, werden standardmäßig die "kleinen" Beispiel-Datensätze basierend auf der Modellaufgabe verwendet, anstatt einen Fehler auszugeben.

Beispiel
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
model.export(
    format="engine",
    dynamic=True,  # (1)!
    batch=8,  # (2)!
    workspace=4,  # (3)!
    int8=True,
    data="coco.yaml",  # (4)!
)

# Load the exported TensorRT INT8 model
model = YOLO("yolo26n.engine", task="detect")

# Run inference
result = model.predict("https://ultralytics.com/images/bus.jpg")
  1. Exporte mit dynamischen Achsen werden standardmäßig aktiviert, wenn mit int8=True exportiert wird, auch wenn sie nicht explizit gesetzt sind. Siehe Export-Argumente für zusätzliche Informationen.
  2. Setzt eine maximale Batch-Größe von 8 für das exportierte Modell und die INT8-Kalibrierung.
  3. Weist 4 GiB Speicher zu, anstatt das gesamte Gerät für den Konvertierungsprozess zu reservieren.
  4. Verwendet den COCO-Datensatz für die Kalibrierung, insbesondere die Bilder, die für die Validierung verwendet werden (insgesamt 5.000).
Kalibrierungs-Cache

TensorRT generiert einen Kalibrierungs-.cache, der wiederverwendet werden kann, um den Export zukünftiger Modellgewichte mit denselben Daten zu beschleunigen. Dies kann jedoch zu einer schlechten Kalibrierung führen, wenn die Daten stark abweichen oder wenn der batch-Wert drastisch geändert wird. Unter diesen Umständen sollte der bestehende .cache umbenannt und in ein anderes Verzeichnis verschoben oder vollständig gelöscht werden.

Link to this sectionVorteile der Verwendung von YOLO mit TensorRT INT8#

  • Reduzierte Modellgröße: Die Quantisierung von FP32 auf INT8 kann die Modellgröße um das Vierfache reduzieren (auf der Festplatte oder im Speicher), was zu schnelleren Downloadzeiten, geringeren Speicheranforderungen und einem reduzierten Speicherbedarf bei der Modellbereitstellung führt.

  • Geringerer Stromverbrauch: Operationen mit reduzierter Präzision für INT8-exportierte YOLO-Modelle können im Vergleich zu FP32-Modellen weniger Strom verbrauchen, insbesondere bei batteriebetriebenen Geräten.

  • Verbesserte Inferenzgeschwindigkeiten: TensorRT optimiert das Modell für die Zielhardware, was zu potenziell schnelleren Inferenzgeschwindigkeiten auf GPUs, eingebetteten Geräten und Beschleunigern führt.

Hinweis zu Inferenzgeschwindigkeiten

Bei den ersten Inferenzaufrufen mit einem nach TensorRT INT8 exportierten Modell ist mit längeren Vorverarbeitungs-, Inferenz- und/oder Nachverarbeitungszeiten als üblich zu rechnen. Dies kann auch auftreten, wenn imgsz während der Inferenz geändert wird, insbesondere wenn imgsz nicht mit dem Wert übereinstimmt, der während des Exports festgelegt wurde (Export-imgsz wird als "optimales" Profil für TensorRT eingestellt).

Link to this sectionNachteile der Verwendung von YOLO mit TensorRT INT8#

  • Verringerung der Bewertungsmetriken: Die Verwendung einer niedrigeren Präzision bedeutet, dass mAP, Precision, Recall oder jede andere zur Bewertung der Modellleistung verwendete Metrik wahrscheinlich etwas schlechter ausfällt. Siehe den Abschnitt Leistungsergebnisse, um die Unterschiede bei mAP50 und mAP50-95 beim Export mit INT8 auf einer kleinen Auswahl verschiedener Geräte zu vergleichen.

  • Erhöhte Entwicklungszeiten: Das Finden der "optimalen" Einstellungen für die INT8-Kalibrierung für einen Datensatz und ein Gerät kann eine beträchtliche Menge an Tests erfordern.

  • Hardware-Abhängigkeit: Kalibrierung und Leistungssteigerungen könnten stark hardwareabhängig sein, und Modellgewichte sind weniger übertragbar.

Link to this sectionLeistung des Ultralytics YOLO TensorRT-Exports#

Link to this sectionNVIDIA A100#

Leistung

Getestet mit Ubuntu 22.04.3 LTS, python 3.10.12, ultralytics==8.2.4, tensorrt==8.6.1.post1

Siehe Erkennungs-Dokumentation für Anwendungsbeispiele mit diesen auf COCO trainierten Modellen, die 80 vortrainierte Klassen enthalten.

Hinweis

Inferenzzeiten angezeigt für mean, min (schnellste) und max (langsamste) für jeden Test unter Verwendung der vortrainierten Gewichte yolov8n.engine

PräzisionEval-TestMittelwert
(ms)
Min | Max
(ms)
mAPval
50(B)
mAPval
50-95(B)
batchGröße
(Pixel)
FP32Vorhersage0.520.51 | 0.568640
FP32COCOval0.520.520.371640
FP16Vorhersage0.340.34 | 0.418640
FP16COCOval0.330.520.371640
INT8Vorhersage0.280.27 | 0.318640
INT8COCOval0.290.470.331640

Link to this sectionConsumer-GPUs#

Erkennungsleistung (COCO)

Getestet mit Windows 10.0.19045, python 3.10.9, ultralytics==8.2.4, tensorrt==10.0.0b6

Hinweis

Inferenzzeiten angezeigt für mean, min (schnellste) und max (langsamste) für jeden Test unter Verwendung der vortrainierten Gewichte yolov8n.engine

PräzisionEval-TestMittelwert
(ms)
Min | Max
(ms)
mAPval
50(B)
mAPval
50-95(B)
batchGröße
(Pixel)
FP32Vorhersage1.060.75 | 1.888640
FP32COCOval1.370.520.371640
FP16Vorhersage0.620.75 | 1.138640
FP16COCOval0.850.520.371640
INT8Vorhersage0.520.38 | 1.008640
INT8COCOval0.740.470.331640

Link to this sectionEingebettete Geräte#

Erkennungsleistung (COCO)

Getestet mit JetPack 6.0 (L4T 36.3) Ubuntu 22.04.4 LTS, python 3.10.12, ultralytics==8.2.16, tensorrt==10.0.1

Hinweis

Inferenzzeiten angezeigt für mean, min (schnellste) und max (langsamste) für jeden Test unter Verwendung der vortrainierten Gewichte yolov8n.engine

PräzisionEval-TestMittelwert
(ms)
Min | Max
(ms)
mAPval
50(B)
mAPval
50-95(B)
batchGröße
(Pixel)
FP32Vorhersage6.116.10 | 6.298640
FP32COCOval6.170.520.371640
FP16Vorhersage3.183.18 | 3.208640
FP16COCOval3.190.520.371640
INT8Vorhersage2.302.29 | 2.358640
INT8COCOval2.320.460.321640
Info

Sieh dir unseren Schnellstart-Leitfaden zu NVIDIA Jetson mit Ultralytics YOLO an, um mehr über Einrichtung und Konfiguration zu erfahren.

Info

Sieh dir unseren Schnellstart-Leitfaden zu NVIDIA DGX Spark mit Ultralytics YOLO an, um mehr über Einrichtung und Konfiguration zu erfahren.

Link to this sectionEvaluierungsmethoden#

Klappe die untenstehenden Abschnitte aus, um Informationen darüber zu erhalten, wie diese Modelle exportiert und getestet wurden.

Exportkonfigurationen

Siehe Export-Modus für Details zu Argumenten der Exportkonfiguration.

from ultralytics import YOLO

model = YOLO("yolo26n.pt")

# TensorRT FP32
out = model.export(format="engine", imgsz=640, dynamic=True, verbose=False, batch=8, workspace=2)

# TensorRT FP16
out = model.export(format="engine", imgsz=640, dynamic=True, verbose=False, batch=8, workspace=2, half=True)

# TensorRT INT8 with calibration `data` (i.e. COCO, ImageNet, or DOTAv1 for appropriate model task)
out = model.export(
    format="engine", imgsz=640, dynamic=True, verbose=False, batch=8, workspace=2, int8=True, data="coco8.yaml"
)
Vorhersageschleife

Siehe Vorhersage-Modus für weitere Informationen.

import cv2

from ultralytics import YOLO

model = YOLO("yolo26n.engine")
img = cv2.imread("path/to/image.jpg")

for _ in range(100):
    result = model.predict(
        [img] * 8,  # batch=8 of the same image
        verbose=False,
        device="cuda",
    )
Validierungskonfiguration

Siehe val Modus, um mehr über die Konfigurationsargumente für die Validierung zu erfahren.

from ultralytics import YOLO

model = YOLO("yolo26n.engine")
results = model.val(
    data="data.yaml",  # COCO, ImageNet, or DOTAv1 for appropriate model task
    batch=1,
    imgsz=640,
    verbose=False,
    device="cuda",
)

Link to this sectionBereitstellung exportierter YOLO26 TensorRT-Modelle#

Nachdem du deine Ultralytics YOLO26-Modelle erfolgreich in das TensorRT-Format exportiert hast, bist du bereit, sie bereitzustellen. Für ausführliche Anleitungen zur Bereitstellung deiner TensorRT-Modelle in verschiedenen Umgebungen, wirf einen Blick auf die folgenden Ressourcen:

Link to this sectionZusammenfassung#

In diesem Leitfaden haben wir uns auf die Konvertierung von Ultralytics YOLO26-Modellen in das NVIDIA TensorRT-Modellformat konzentriert. Dieser Konvertierungsschritt ist entscheidend für die Verbesserung der Effizienz und Geschwindigkeit von YOLO26-Modellen, wodurch sie effektiver und für diverse Bereitstellungsumgebungen geeignet werden.

Für weitere Informationen zu Nutzungsdetails wirf einen Blick in die offizielle TensorRT-Dokumentation.

Wenn du neugierig auf weitere Ultralytics YOLO26-Integrationen bist, bietet unsere Seite für Integrationsleitfäden eine umfangreiche Auswahl an informativen Ressourcen und Einblicken.

Link to this sectionFAQ#

Link to this sectionWie konvertiere ich YOLO26-Modelle in das TensorRT-Format?#

Um deine Ultralytics YOLO26-Modelle für eine optimierte NVIDIA GPU-Inferenz in das TensorRT-Format zu konvertieren, befolge diese Schritte:

  1. Installiere das erforderliche Paket:

    pip install ultralytics
  2. Exportiere dein YOLO26-Modell:

    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")
    model.export(format="engine")  # creates 'yolo26n.engine'
    
    # Run inference
    model = YOLO("yolo26n.engine")
    results = model("https://ultralytics.com/images/bus.jpg")

Weitere Details findest du im YOLO26-Installationsleitfaden und in der Export-Dokumentation.

Link to this sectionWas sind die Vorteile der Verwendung von TensorRT für YOLO26-Modelle?#

Die Verwendung von TensorRT zur Optimierung von YOLO26-Modellen bietet mehrere Vorteile:

  • Höhere Inferenzgeschwindigkeit: TensorRT optimiert die Modellschichten und verwendet Präzisionskalibrierung (INT8 und FP16), um die Inferenz zu beschleunigen, ohne die Genauigkeit wesentlich zu beeinträchtigen.
  • Speichereffizienz: TensorRT verwaltet den Tensorspeicher dynamisch, was den Overhead reduziert und die GPU-Speicherauslastung verbessert.
  • Layer Fusion: Kombiniert mehrere Schichten zu einzelnen Operationen, wodurch die Rechenkomplexität reduziert wird.
  • Kernel Auto-Tuning: Wählt automatisch optimierte GPU-Kernel für jede Modellschicht aus, um maximale Leistung zu gewährleisten.

Um mehr zu erfahren, erkunde die offizielle TensorRT-Dokumentation von NVIDIA und unsere detaillierte TensorRT-Übersicht.

Link to this sectionKann ich INT8-Quantisierung mit TensorRT für YOLO26-Modelle verwenden?#

Ja, du kannst YOLO26-Modelle mit TensorRT unter Verwendung von INT8-Quantisierung exportieren. Dieser Prozess umfasst Post-Training Quantization (PTQ) und Kalibrierung:

  1. Export mit INT8:

    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")
    model.export(format="engine", batch=8, workspace=4, int8=True, data="coco.yaml")
  2. Inferenz ausführen:

    from ultralytics import YOLO
    
    model = YOLO("yolo26n.engine", task="detect")
    result = model.predict("https://ultralytics.com/images/bus.jpg")

Weitere Details findest du im Abschnitt Exportieren von TensorRT mit INT8-Quantisierung.

Link to this sectionWie stelle ich YOLO26 TensorRT-Modelle auf einem NVIDIA Triton Inference Server bereit?#

Die Bereitstellung von YOLO26 TensorRT-Modellen auf einem NVIDIA Triton Inference Server kann mithilfe der folgenden Ressourcen erfolgen:

Diese Leitfäden helfen dir, YOLO26-Modelle effizient in verschiedenen Bereitstellungsumgebungen zu integrieren.

Link to this sectionWelche Leistungsverbesserungen werden bei YOLO26-Modellen beobachtet, die nach TensorRT exportiert wurden?#

Leistungsverbesserungen mit TensorRT können je nach verwendeter Hardware variieren. Hier sind einige typische Benchmarks:

  • NVIDIA A100:

    • FP32 Inferenz: ~0,52 ms / Bild
    • FP16 Inferenz: ~0,34 ms / Bild
    • INT8 Inferenz: ~0,28 ms / Bild
    • Geringfügige Verringerung des mAP bei INT8-Präzision, aber signifikante Verbesserung der Geschwindigkeit.
  • Consumer-GPUs (z. B. RTX 3080):

    • FP32 Inferenz: ~1,06 ms / Bild
    • FP16 Inferenz: ~0,62 ms / Bild
    • INT8 Inferenz: ~0,52 ms / Bild

Detaillierte Leistungs-Benchmarks für verschiedene Hardwarekonfigurationen findest du im Leistungsabschnitt.

Für umfassendere Einblicke in die TensorRT-Leistung siehe die Ultralytics-Dokumentation und unsere Leistungsanalyseberichte.

Kommentare