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 bereitstellst.

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 umzusetzende Schritte für den Konvertierungsprozess und hilft dir dabei, die fortschrittliche NVIDIA-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), das für Hochgeschwindigkeits-Deep-Learning-Inferenz konzipiert wurde. Es ist hervorragend für Echtzeitanwendungen wie Objekterkennung geeignet.

Dieses Toolkit optimiert Deep-Learning-Modelle für NVIDIA GPUs und führt zu schnelleren sowie effizienteren Abläufen. TensorRT-Modelle durchlaufen eine TensorRT-Optimierung, die Techniken wie Layer-Fusion, Präzisionskalibrierung (INT8 und FP16), dynamisches Tensor-Speichermanagement 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, was Entwicklern eine flexible Lösung zur Integration und Optimierung von Modellen aus verschiedenen Frameworks bietet. Diese Vielseitigkeit ermöglicht eine effiziente Modellbereitstellung über diverse Hardware- und Softwareumgebungen hinweg.

Link to this sectionHauptmerkmale von TensorRT-Modellen#

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

  • Präzisionskalibrierung: TensorRT unterstützt die Präzisionskalibrierung, wodurch Modelle für spezifische Genauigkeitsanforderungen feinabgestimmt werden können. Dies beinhaltet die Unterstützung für Formate mit reduzierter Präzision wie INT8 und FP16, die die Inferenzgeschwindigkeit weiter steigern können, während ein akzeptables Genauigkeitsniveau erhalten bleibt.

  • Layer-Fusion: Der TensorRT-Optimierungsprozess umfasst Layer-Fusion, wobei 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

  • Dynamisches Tensor-Speichermanagement: TensorRT verwaltet die Tensorspeichernutzung während der Inferenz effizient, reduziert den Speicher-Overhead und optimiert die Speicherzuweisung. Dies führt zu einer effizienteren GPU-Speichernutzung.

  • 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 optimal ausnutzt.

Link to this sectionBereitstellungsoptionen in TensorRT#

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

TensorRT bietet mehrere Bereitstellungsoptionen, wobei jede Option das Gleichgewicht zwischen Integrationsfreundlichkeit, Leistungsoptimierung und Flexibilität unterschiedlich gewichtet:

  • Bereitstellung innerhalb von TensorFlow: Diese Methode integriert TensorRT in TensorFlow, wodurch 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 verarbeiten kann.

NVIDIA TensorRT optimization workflow

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

  • NVIDIA Triton Inference Server: Eine Option, die Modelle verschiedener Frameworks unterstützt. Sie ist besonders für Cloud- oder Edge-Inferenz geeignet und bietet 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

Für detaillierte Anweisungen und Best Practices zum Installationsprozess, siehe unseren YOLO26-Installationsleitfaden. Falls du bei der Installation der erforderlichen Pakete für YOLO26 auf Schwierigkeiten stößt, konsultiere unseren Leitfaden zu häufigen Problemen für Lösungen und Tipps.

Link to this sectionVerwendung#

Bevor du dich in die Anleitungen zur Nutzung stürzt, schau dir unbedingt die Auswahl der YOLO26 models offered by 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 es anschließend, um die Inferenz durchzuführen oder die 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'
Vorhersagen
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 eine Ganzzahl für quadratische Bilder oder ein Tupel (height, width) für spezifische Dimensionen sein.
halfboolFalseAktiviert die FP16-Quantisierung (Halbpräzision), was die Modellgröße reduziert und die Inferenz auf unterstützter Hardware potenziell beschleunigt.
int8boolFalseAktiviert die INT8-Quantisierung, komprimiert das Modell weiter und beschleunigt die Inferenz mit minimalem Genauigkeitsverlust, primär für Edge-Geräte.
dynamicboolFalseErmöglicht dynamische Eingabegrößen, was die Flexibilität bei der Verarbeitung variierender Bilddimensionen erhöht.
simplifyboolTrueVereinfacht den Modellgraphen mit onnxslim, was die Leistung und Kompatibilität potenziell verbessert.
workspacefloat oder NoneNoneLegt die maximale Workspace-Größe in GiB für TensorRT-Optimierungen fest und balanciert Speichernutzung und Leistung aus; verwende None für eine automatische Zuweisung durch TensorRT bis zum Geräte-Maximum.
nmsboolFalseFügt Non-Maximum Suppression (NMS) hinzu, was für eine genaue und effiziente Detektions-Nachbearbeitung unerlässlich ist.
batchint1Gibt die Batch-Größe für die Modellausführung oder die maximale Anzahl an Bildern an, die das exportierte Modell gleichzeitig im predict-Modus verarbeitet.
datastr'coco8.yaml'Pfad zur Dataset-Konfigurationsdatei (Standard: coco8.yaml), essenziell 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 bei aktivierter INT8-Quantisierung nicht spezifiziert, wird der vollständige Datensatz verwendet.
devicestrNoneLegt das Gerät für den Export fest: 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.

TensorRT 11.0 und DLA

TensorRT 11.0 unterstützt kein DLA; verwende TensorRT 10.x für device=dla:0 oder device=dla:1 oder exportiere eine TensorRT 11.0 GPU-Engine.

Weitere Details zum Exportprozess findest du auf der Ultralytics-Dokumentationsseite zum Exportieren.

Link to this sectionExportieren von TensorRT mit INT8-Quantisierung#

Der Export von Ultralytics YOLO-Modellen mit TensorRT unter Verwendung von INT8-Präzision führt eine Post-Training-Quantisierung (PTQ) aus. TensorRT verwendet für PTQ eine Kalibrierung, die die Verteilung der Aktivierungen innerhalb jedes Aktivierungstensors misst, während das YOLO-Modell die Inferenz auf repräsentativen Eingabedaten verarbeitet, und nutzt diese Verteilung dann, um Skalenwerte für jeden Tensor zu schätzen. Jeder Aktivierungstensor, der für eine Quantisierung in Frage kommt, besitzt eine zugehörige Skala, die durch einen Kalibrierungsprozess hergeleitet wird.

TensorRT 11 Quantisierung

TensorRT 11 hat die implizite Quantisierung und das IInt8Calibrator-Interface entfernt. Unter TensorRT 11 und neueren Versionen führt Ultralytics die INT8-Quantisierung mit der expliziten Quantisierung von NVIDIA ModelOpt durch, die Q/DQ-Knoten in den ONNX-Graphen einfügt, bevor eine stark typisierte Engine erstellt wird. FP16 wird mit der ModelOpt AutoCast-Mischpräzisionskonvertierung angewendet. Die Argumente int8=True, half=True und data funktionieren auf die gleiche Weise; ModelOpt wird bei der ersten Verwendung automatisch installiert. Unter TensorRT 7-10 wird stattdessen der unten beschriebene Legacy-Kalibrator verwendet.

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 zugewiesene Quantisierungsskalen an ihren Dateneingängen und -ausgängen 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, basierend darauf, was für diese Schicht zu einer schnelleren Ausführungszeit führt.

Tipp

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

Link to this sectionKonfiguration des INT8-Exports#

Die Argumente, die beim Exportieren eines Ultralytics YOLO-Modells verwendet werden, beeinflussen die Leistung des exportierten Modells maßgeblich. Sie müssen zudem basierend auf den verfügbaren Hardwareressourcen ausgewählt werden, wobei die Standardargumente für die meisten Ampere (oder neueren) NVIDIA diskreten GPUs funktionieren sollten. Der verwendete Kalibrierungsalgorithmus ist "MINMAX_CALIBRATION" für GPU-Exporte, während DLA-Exporte auf NVIDIA Jetson "ENTROPY_CALIBRATION_2" nutzen. Weitere Details zu den verfügbaren Optionen findest du im TensorRT Developer Guide. Tests bei 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 Ressourcenverfügbarkeit an. Während ein größerer workspace die Kalibrierungszeit erhöhen kann, ermöglicht er TensorRT das Ausprobieren einer breiteren Palette an Optimierungstaktiken, was die Modellleistung und Genauigkeit potenziell verbessert. Umgekehrt kann ein kleinerer workspace die Kalibrierungszeit zwar verkürzen, aber die Optimierungsstrategien einschränken, was die Qualität des quantisierten Modells beeinträchtigen kann.

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

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

    • Wenn workspace auf den Maximalwert gesetzt 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 den Speicherbedarf zu verringern.

    • Denke daran, dass die Kalibrierung für INT8 gerätespezifisch ist; 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 während der INT8-Kalibrierung zu einer ungenauen Skalierung führen. Dies liegt daran, dass sich der Prozess an die Daten anpasst, die er sieht. Kleine Batches erfassen möglicherweise nicht den gesamten Wertebereich, was zu Problemen bei der endgültigen Kalibrierung führen kann. Die Verwendung einer größeren Batch-Größe trägt dazu bei, repräsentativere Kalibrierungsergebnisse zu gewährleisten.

Experimentation by NVIDIA led them to recommend using at least 500 calibration images that are representative of the data for your model, with INT8 quantization calibration. This is a guideline and not a hard requirement, and you will need to experiment with what is required to perform well for your dataset. Since the calibration data is required for INT8 calibration with TensorRT, make certain to use the data argument when int8=True for TensorRT and use data="my_dataset.yaml", which will use the images from validation to calibrate with. When no value is passed for data with export to TensorRT with INT8 quantization, the default will be to use one of the "small" example datasets based on the model task instead of throwing an error.

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; dies wird beim Export mit int8=True standardmäßig aktiviert, auch wenn es nicht explizit gesetzt ist. Siehe Export-Argumente für zusätzliche Informationen.
  2. Legt eine maximale Batch-Größe von 8 für das exportierte Modell und die INT8-Kalibrierung fest.
  3. Zuweisung von 4 GiB Speicher anstelle der Zuweisung des gesamten Geräts für den Konvertierungsprozess.
  4. Verwendet den COCO-Datensatz für die Kalibrierung, spezifisch 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 unter Verwendung derselben 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 vorhandene .cache umbenannt, in ein anderes Verzeichnis verschoben oder vollständig gelöscht werden.

Link to this sectionVorteile der Nutzung 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, geringerem Speicherbedarf und einem kleineren Speicher-Footprint bei der Bereitstellung eines Modells 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 potenziell zu schnelleren Inferenzgeschwindigkeiten auf GPUs, eingebetteten Geräten und Beschleunigern führt.

Hinweis zu Inferenzgeschwindigkeiten

Bei den ersten Inferenzaufrufen eines nach TensorRT INT8 exportierten Modells kann es zu längeren als üblichen Vorverarbeitungs-, Inferenz- und/oder Nachbearbeitungszeiten kommen. Dies kann auch auftreten, wenn imgsz während der Inferenz geändert wird, insbesondere wenn imgsz nicht mit dem übereinstimmt, was während des Exports festgelegt wurde (der Export-imgsz wird als "optimales" TensorRT-Profil festgelegt).

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

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

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

  • Hardwareabhängigkeit: Kalibrierung und Leistungsgewinne können stark hardwareabhängig sein und Modellgewichte sind weniger übertragbar.

Link to this sectionUltralytics YOLO TensorRT Export-Leistung#

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 Detektions-Dokumentation für Anwendungsbeispiele mit diesen Modellen, die auf COCO trainiert wurden und 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)
FP32Vorhersagen0.520.51 | 0.568640
FP32COCOval0.520.520.371640
FP16Vorhersagen0.340.34 | 0.418640
FP16COCOval0.330.520.371640
INT8Vorhersagen0.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)
FP32Vorhersagen1.060.75 | 1.888640
FP32COCOval1.370.520.371640
FP16Vorhersagen0.620.75 | 1.138640
FP16COCOval0.850.520.371640
INT8Vorhersagen0.520.38 | 1.008640
INT8COCOval0.740.470.331640

Link to this sectionEmbedded-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)
FP32Vorhersagen6.116.10 | 6.298640
FP32COCOval6.170.520.371640
FP16Vorhersagen3.183.18 | 3.208640
FP16COCOval3.190.520.371640
INT8Vorhersagen2.302.29 | 2.358640
INT8COCOval2.320.460.321640
Info

Siehe unseren Schnellstart-Guide für NVIDIA Jetson mit Ultralytics YOLO, um mehr über Einrichtung und Konfiguration zu erfahren.

Info

Siehe unseren Schnellstart-Guide für NVIDIA DGX Spark mit Ultralytics YOLO, um mehr über Einrichtung und Konfiguration zu erfahren.

Link to this sectionEvaluierungsmethoden#

Erweitere die untenstehenden Abschnitte für Informationen darüber, wie diese Modelle exportiert und getestet wurden.

Exportkonfigurationen

Siehe Exportmodus für Details zu den Konfigurationsargumenten beim Export.

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 Vorhersagemodus 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 zur 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. Ausführliche Anweisungen zur Bereitstellung deiner TensorRT-Modelle in verschiedenen Umgebungen findest du in den 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, um die Effizienz und Geschwindigkeit von YOLO26-Modellen zu verbessern, sie effektiver zu machen und für verschiedene Bereitstellungsumgebungen geeignet zu gestalten.

Weitere Informationen zu Anwendungsdetails findest du in der offiziellen TensorRT-Dokumentation.

Wenn du dich für weitere Ultralytics YOLO26-Integrationen interessierst, bietet unsere Integrations-Guide-Seite 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 Tensor-Speicher dynamisch, wodurch der Overhead reduziert und die GPU-Speicherauslastung verbessert wird.
  • 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 unseren detaillierten TensorRT-Überblick.

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-Quantisierung (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 Anleitungen 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?#

Die 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
    • Leichte Reduzierung der mAP bei INT8-Präzision, aber deutliche 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 Leistungsbenchmarks für verschiedene Hardwarekonfigurationen findest du im Leistungsbereich.

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

Kommentare