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#
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.
-
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.
-
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:
# Install the required package for YOLO26
pip install ultralyticsDetaillierte 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.
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'from ultralytics import YOLO
# Load the exported TensorRT model
model = YOLO("yolo26n.engine")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")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#
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
format | str | 'engine' | Zielformat für das exportierte Modell, das die Kompatibilität mit verschiedenen Bereitstellungsumgebungen definiert. |
imgsz | int oder tuple | 640 | Gewünschte Bildgröße für den Modelleingang. Kann ein Integer für quadratische Bilder oder ein Tupel (height, width) für spezifische Dimensionen sein. |
half | bool | False | Aktiviert die FP16-Quantisierung (Halbpräzision), wodurch die Modellgröße reduziert und die Inferenz auf unterstützter Hardware potenziell beschleunigt wird. |
int8 | bool | False | Aktiviert die INT8-Quantisierung, wodurch das Modell weiter komprimiert und die Inferenz bei minimalem Genauigkeitsverlust beschleunigt wird, primär für Edge-Geräte. |
dynamic | bool | False | Ermöglicht dynamische Eingabegrößen, was die Flexibilität bei der Handhabung variierender Bilddimensionen erhöht. |
simplify | bool | True | Vereinfacht den Modellgraphen mit onnxslim, was die Leistung und Kompatibilität potenziell verbessert. |
workspace | float oder None | None | Legt 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. |
nms | bool | False | Fügt Non-Maximum Suppression (NMS) hinzu, was für eine genaue und effiziente Nachbearbeitung der Erkennung unerlässlich ist. |
batch | int | 1 | Legt die Batch-Inferenzgröße des exportierten Modells oder die maximale Anzahl an Bildern fest, die das exportierte Modell gleichzeitig im predict-Modus verarbeitet. |
data | str | 'coco8.yaml' | Pfad zur Konfigurationsdatei des Datensatzes (Standard: coco8.yaml), essentiell für die Quantisierung. |
fraction | float | 1.0 | Gibt 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. |
device | str | None | Gibt das Gerät für den Export an: GPU (device=0), DLA für NVIDIA Jetson (device=dla:0 oder device=dla:1). |
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.
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ößererworkspacedie 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 kleinererworkspacedie 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_STATEwährend des Exports, wenn der Wert fürworkspacegrößer ist als der dem Gerät zur Verfügung stehende Speicher; dies bedeutet, dass der Wert fürworkspaceverringert oder aufNonegesetzt werden sollte. -
Wenn
workspaceauf den Maximalwert eingestellt ist und die Kalibrierung fehlschlägt oder abstürzt, erwäge die Verwendung vonNonefür die automatische Zuweisung oder reduziere die Werte fürimgszundbatch, 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.
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.
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")- Exporte mit dynamischen Achsen werden standardmäßig aktiviert, wenn mit
int8=Trueexportiert wird, auch wenn sie nicht explizit gesetzt sind. Siehe Export-Argumente für zusätzliche Informationen. - Setzt eine maximale Batch-Größe von 8 für das exportierte Modell und die INT8-Kalibrierung.
- Weist 4 GiB Speicher zu, anstatt das gesamte Gerät für den Konvertierungsprozess zu reservieren.
- 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,Recalloder jede andere zur Bewertung der Modellleistung verwendete Metrik wahrscheinlich etwas schlechter ausfällt. Siehe den Abschnitt Leistungsergebnisse, um die Unterschiede beimAP50undmAP50-95beim 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#
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.
Inferenzzeiten angezeigt für mean, min (schnellste) und max (langsamste) für jeden Test unter Verwendung der vortrainierten Gewichte yolov8n.engine
| Präzision | Eval-Test | Mittelwert (ms) | Min | Max (ms) | mAPval 50(B) | mAPval 50-95(B) | batch | Größe (Pixel) |
|---|---|---|---|---|---|---|---|
| FP32 | Vorhersage | 0.52 | 0.51 | 0.56 | 8 | 640 | ||
| FP32 | COCOval | 0.52 | 0.52 | 0.37 | 1 | 640 | |
| FP16 | Vorhersage | 0.34 | 0.34 | 0.41 | 8 | 640 | ||
| FP16 | COCOval | 0.33 | 0.52 | 0.37 | 1 | 640 | |
| INT8 | Vorhersage | 0.28 | 0.27 | 0.31 | 8 | 640 | ||
| INT8 | COCOval | 0.29 | 0.47 | 0.33 | 1 | 640 |
Link to this sectionConsumer-GPUs#
Getestet mit Windows 10.0.19045, python 3.10.9, ultralytics==8.2.4, tensorrt==10.0.0b6
Inferenzzeiten angezeigt für mean, min (schnellste) und max (langsamste) für jeden Test unter Verwendung der vortrainierten Gewichte yolov8n.engine
| Präzision | Eval-Test | Mittelwert (ms) | Min | Max (ms) | mAPval 50(B) | mAPval 50-95(B) | batch | Größe (Pixel) |
|---|---|---|---|---|---|---|---|
| FP32 | Vorhersage | 1.06 | 0.75 | 1.88 | 8 | 640 | ||
| FP32 | COCOval | 1.37 | 0.52 | 0.37 | 1 | 640 | |
| FP16 | Vorhersage | 0.62 | 0.75 | 1.13 | 8 | 640 | ||
| FP16 | COCOval | 0.85 | 0.52 | 0.37 | 1 | 640 | |
| INT8 | Vorhersage | 0.52 | 0.38 | 1.00 | 8 | 640 | ||
| INT8 | COCOval | 0.74 | 0.47 | 0.33 | 1 | 640 |
Link to this sectionEingebettete Geräte#
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
Inferenzzeiten angezeigt für mean, min (schnellste) und max (langsamste) für jeden Test unter Verwendung der vortrainierten Gewichte yolov8n.engine
| Präzision | Eval-Test | Mittelwert (ms) | Min | Max (ms) | mAPval 50(B) | mAPval 50-95(B) | batch | Größe (Pixel) |
|---|---|---|---|---|---|---|---|
| FP32 | Vorhersage | 6.11 | 6.10 | 6.29 | 8 | 640 | ||
| FP32 | COCOval | 6.17 | 0.52 | 0.37 | 1 | 640 | |
| FP16 | Vorhersage | 3.18 | 3.18 | 3.20 | 8 | 640 | ||
| FP16 | COCOval | 3.19 | 0.52 | 0.37 | 1 | 640 | |
| INT8 | Vorhersage | 2.30 | 2.29 | 2.35 | 8 | 640 | ||
| INT8 | COCOval | 2.32 | 0.46 | 0.32 | 1 | 640 |
Sieh dir unseren Schnellstart-Leitfaden zu NVIDIA Jetson mit Ultralytics YOLO an, um mehr über Einrichtung und Konfiguration zu erfahren.
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:
-
Ultralytics mit einem Triton Server bereitstellen: Unser Leitfaden zur Verwendung des NVIDIA Triton Inference (ehemals TensorRT Inference) Servers speziell für die Verwendung mit Ultralytics YOLO-Modellen.
-
Bereitstellung von Deep Neural Networks mit NVIDIA TensorRT: Dieser Artikel erklärt, wie man NVIDIA TensorRT verwendet, um Deep Neural Networks effizient auf GPU-basierten Bereitstellungsplattformen einzusetzen.
-
End-to-End KI für NVIDIA-basierte PCs: NVIDIA TensorRT-Bereitstellung: Dieser Blogbeitrag erklärt die Verwendung von NVIDIA TensorRT zur Optimierung und Bereitstellung von KI-Modellen auf NVIDIA-basierten PCs.
-
GitHub Repository für NVIDIA TensorRT:: Dies ist das offizielle GitHub-Repository, das den Quellcode und die Dokumentation für NVIDIA TensorRT enthält.
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:
-
Installiere das erforderliche Paket:
pip install ultralytics -
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:
-
Export mit INT8:
from ultralytics import YOLO model = YOLO("yolo26n.pt") model.export(format="engine", batch=8, workspace=4, int8=True, data="coco.yaml") -
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:
- Ultralytics YOLO26 mit Triton Server bereitstellen: Schritt-für-Schritt-Anleitung zur Einrichtung und Verwendung des Triton Inference Servers.
- Bereitstellung von Deep Neural Networks mit NVIDIA TensorRT: NVIDIAs Leitfaden zur Bereitstellung von Deep-Learning-Modellen mit TensorRT für detaillierte Bereitstellungsoptionen und Konfigurationen.
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.