Skip to content

TensorRT Exportation pour les modèles YOLOv8

Le déploiement de modèles de vision par ordinateur dans des environnements très performants peut nécessiter un format qui maximise la vitesse et l'efficacité. C'est particulièrement vrai lorsque tu déploies ton modèle sur des GPU NVIDIA.

En utilisant le format d'exportation TensorRT , tu peux améliorer tes modèles pour une inférence rapide et efficace sur le matériel NVIDIA. Ultralytics YOLOv8 modèles pour une inférence rapide et efficace sur le matériel NVIDIA. Ce guide te donnera des étapes faciles à suivre pour le processus de conversion et t'aidera à tirer le meilleur parti de la technologie avancée de NVIDIA dans tes projets d'apprentissage profond.

TensorRT

TensorRT Vue d'ensemble

TensorRT, développé par NVIDIA, est un kit de développement logiciel (SDK) avancé conçu pour l'inférence d'apprentissage profond à grande vitesse. Il est bien adapté aux applications en temps réel comme la détection d'objets.

Cette boîte à outils optimise les modèles d'apprentissage profond pour les GPU NVIDIA et permet d'obtenir des opérations plus rapides et plus efficaces. Les modèles TensorRT subissent une optimisation TensorRT , qui comprend des techniques telles que la fusion des couches, l'étalonnage de la précision (INT8 et FP16), la gestion dynamique de la mémoire tensor et l'auto-tuning du noyau. La conversion des modèles d'apprentissage profond au format TensorRT permet aux développeurs d'exploiter pleinement le potentiel des GPU NVIDIA.

TensorRT est connu pour sa compatibilité avec divers formats de modèles, notamment TensorFlow, PyTorch, et ONNX, offrant aux développeurs une solution flexible pour l'intégration et l'optimisation de modèles provenant de différents cadres. Cette polyvalence permet un déploiement efficace des modèles dans divers environnements matériels et logiciels.

Caractéristiques principales des modèles TensorRT

TensorRT Les modèles offrent une gamme de caractéristiques clés qui contribuent à leur efficacité et à leur efficience dans l'inférence d'apprentissage profond à grande vitesse :

  • Étalonnage de prĂ©cision: TensorRT prend en charge l'Ă©talonnage de prĂ©cision, ce qui permet d'affiner les modèles en fonction d'exigences spĂ©cifiques en matière de prĂ©cision. Cela inclut la prise en charge des formats de prĂ©cision rĂ©duite tels que INT8 et FP16, qui permettent d'augmenter la vitesse d'infĂ©rence tout en maintenant des niveaux de prĂ©cision acceptables.

  • Fusion de couches: Le processus d'optimisation TensorRT comprend la fusion des couches, oĂą plusieurs couches d'un rĂ©seau neuronal sont combinĂ©es en une seule opĂ©ration. Cela permet de rĂ©duire la surcharge de calcul et d'amĂ©liorer la vitesse d'infĂ©rence en minimisant l'accès Ă  la mĂ©moire et les calculs.

TensorRT Fusion de couches

  • Gestion dynamique de la mĂ©moire de Tensor : TensorRT gère efficacement l'utilisation de la mĂ©moire de tensor pendant l'infĂ©rence, en rĂ©duisant la surcharge de la mĂ©moire et en optimisant l'allocation de la mĂ©moire. Il en rĂ©sulte une utilisation plus efficace de la mĂ©moire du GPU.

  • RĂ©glage automatique du noyau : TensorRT applique le rĂ©glage automatique du noyau pour sĂ©lectionner le noyau GPU le plus optimisĂ© pour chaque couche du modèle. Cette approche adaptative garantit que le modèle tire pleinement parti de la puissance de calcul du GPU.

Options de déploiement dans TensorRT

Avant d'examiner le code permettant d'exporter les modèles YOLOv8 au format TensorRT , comprenons où les modèles TensorRT sont normalement utilisés.

TensorRT offre plusieurs options de déploiement, et chaque option équilibre différemment la facilité d'intégration, l'optimisation des performances et la flexibilité :

  • DĂ©ploiement dans TensorFlow: Cette mĂ©thode intègre TensorRT dans TensorFlow, ce qui permet aux modèles optimisĂ©s de fonctionner dans un environnement TensorFlow familier. Elle est utile pour les modèles comportant un mĂ©lange de couches prises en charge et non prises en charge, car TF-TRT peut les gĂ©rer efficacement.

TensorRT Vue d'ensemble

  • API d'exĂ©cution autonome TensorRT : Offre un contrĂ´le granulaire, idĂ©al pour les applications dont les performances sont critiques. Elle est plus complexe mais permet la mise en Ĺ“uvre personnalisĂ©e d'opĂ©rateurs non pris en charge.

  • Serveur d'infĂ©rence NVIDIA Triton : Une option qui prend en charge les modèles de divers frameworks. Particulièrement adaptĂ©e Ă  l'infĂ©rence dans le cloud ou en pĂ©riphĂ©rie, elle offre des fonctionnalitĂ©s telles que l'exĂ©cution de modèles simultanĂ©s et l'analyse de modèles.

Exporter les modèles YOLOv8 vers TensorRT

Tu peux améliorer l'efficacité de l'exécution et optimiser les performances en convertissant les modèles YOLOv8 au format TensorRT .

Installation

Pour installer le paquetage requis, exécute :

Installation

# Install the required package for YOLOv8
pip install ultralytics

Pour des instructions détaillées et les meilleures pratiques liées au processus d'installation, consulte notre guide d'installationYOLOv8 . Pendant l'installation des paquets requis pour YOLOv8, si tu rencontres des difficultés, consulte notre guide des problèmes courants pour trouver des solutions et des conseils.

Utilisation

Avant de te plonger dans les instructions d'utilisation, n'oublie pas de consulter la gamme de modèlesYOLOv8 proposée par Ultralytics. Cela t'aidera à choisir le modèle le plus approprié aux exigences de ton projet.

Utilisation

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO('yolov8n.pt')

# Export the model to TensorRT format
model.export(format='engine')  # creates 'yolov8n.engine'

# Load the exported TensorRT model
tensorrt_model = YOLO('yolov8n.engine')

# Run inference
results = tensorrt_model('https://ultralytics.com/images/bus.jpg')
# Export a YOLOv8n PyTorch model to TensorRT format
yolo export model=yolov8n.pt format=engine  # creates 'yolov8n.engine''

# Run inference with the exported model
yolo predict model=yolov8n.engine source='https://ultralytics.com/images/bus.jpg'

Pour plus de détails sur le processus d'exportation, visite la page de documentationUltralytics sur l'exportation.

Exporter TensorRT avec la quantification INT8

L'exportation des modèles Ultralytics YOLO à l'aide de TensorRT avec une précision INT8 exécute la quantification post-entraînement (PTQ). TensorRT utilise le calibrage pour PTQ, qui mesure la distribution des activations au sein de chaque activation tensor lorsque le modèle YOLO traite l'inférence sur des données d'entrée représentatives, et utilise ensuite cette distribution pour estimer les valeurs d'échelle pour chaque tensor. Chaque activation tensor candidate à la quantification a une échelle associée qui est déduite par un processus d'étalonnage.

Lors du traitement de réseaux implicitement quantifiés, TensorRT utilise INT8 de manière opportuniste pour optimiser le temps d'exécution des couches. Si une couche s'exécute plus rapidement en INT8 et que des échelles de quantification ont été attribuées à ses entrées et sorties de données, un noyau avec une précision INT8 est attribué à cette couche. Sinon, TensorRT sélectionne une précision FP32 ou FP16 pour le noyau en fonction de celle qui permet d'obtenir un temps d'exécution plus rapide pour cette couche.

Astuce

Il est essentiel de s'assurer que le même appareil qui utilisera les poids du modèle TensorRT pour le déploiement est utilisé pour l'exportation avec la précision INT8, car les résultats de l'étalonnage peuvent varier d'un appareil à l'autre.

Configuration de l'exportation INT8

Les arguments fournis lors de l'utilisation de exporter pour un modèle Ultralytics YOLO grandement influencent les performances du modèle exporté. Ils devront également être sélectionnés en fonction des ressources de l'appareil disponibles, cependant les arguments par défaut. doit fonctionne pour la plupart GPU discrets NVIDIA Ampere (ou plus récents). L'algorithme de calibrage utilisé est "ENTROPY_CALIBRATION_2" et tu peux lire plus de détails sur les options disponibles dans le guide du développeur TensorRT. Ultralytics Les tests ont révélé que "ENTROPY_CALIBRATION_2" était le meilleur choix et les exportations sont fixées à l'utilisation de cet algorithme.

  • workspace : ContrĂ´le la taille (en GiB) de l'allocation de la mĂ©moire du pĂ©riphĂ©rique lors de la conversion des poids du modèle.

    • Vise Ă  utiliser le minimum workspace valeur requise, car cela empĂŞche de tester des algorithmes qui nĂ©cessitent plus de workspace d'ĂŞtre pris en compte par le constructeur TensorRT . En fixant une valeur plus Ă©levĂ©e pour workspace peut prendre considĂ©rablement plus long pour calibrer et exporter.

    • La valeur par dĂ©faut est workspace=4 (GiB), il se peut que cette valeur doive ĂŞtre augmentĂ©e si l'Ă©talonnage se bloque (se termine sans avertissement).

    • TensorRT rapportera UNSUPPORTED_STATE lors de l'exportation si la valeur de workspace est plus grande que la mĂ©moire dont dispose l'appareil, ce qui signifie que la valeur de workspace doit ĂŞtre abaissĂ©e.

    • Si workspace est rĂ©glĂ©e sur la valeur maximale et que l'Ă©talonnage Ă©choue, envisage de rĂ©duire les valeurs de imgsz et batch pour rĂ©duire les besoins en mĂ©moire.

    • N'oublie pas que l'Ă©talonnage pour INT8 est spĂ©cifique Ă  chaque appareil, emprunter un GPU "haut de gamme" pour l'Ă©talonnage peut entraĂ®ner des performances mĂ©diocres lorsque l'infĂ©rence est exĂ©cutĂ©e sur un autre appareil.

  • batch : La taille maximale du lot qui sera utilisĂ©e pour l'infĂ©rence. Pendant l'infĂ©rence, des lots plus petits peuvent ĂŞtre utilisĂ©s, mais l'infĂ©rence n'acceptera pas de lots plus grands que ce qui est spĂ©cifiĂ©.

    Note

    Pendant l'étalonnage, deux fois la batch La taille fournie sera utilisée. L'utilisation de petits lots peut entraîner une mise à l'échelle inexacte lors de l'étalonnage. En effet, le processus s'ajuste en fonction des données qu'il voit. Les petits lots risquent de ne pas saisir toute la gamme des valeurs, ce qui entraînera des problèmes lors de l'étalonnage final. batch est automatiquement doublée. Si aucune taille de lot n'est spécifiée batch=1L'étalonnage sera effectué à batch=1 * 2 pour réduire les erreurs d'échelle d'étalonnage.

L'expérimentation de NVIDIA les a conduits à recommander d'utiliser au moins 500 images de calibration représentatives des données de ton modèle, avec une calibration de quantification INT8. Il s'agit d'une ligne directrice et non d'une dur exigence, et tu devras expérimenter ce qui est nécessaire pour obtenir de bons résultats avec ton ensemble de données. Comme les données d'étalonnage sont nécessaires pour l'étalonnage de l'INT8 avec TensorRT, assure-toi d'utiliser l'option data argument lorsque int8=True pour TensorRT et utilise data="my_dataset.yaml"qui utilisera les images de validation pour l'étalonnage. Si aucune valeur n'est transmise pour data avec l'exportation vers TensorRT avec une quantification INT8, la valeur par défaut sera d'utiliser l'une des options suivantes "petits" ensembles de données d'exemple basés sur la tâche du modèle. au lieu de provoquer une erreur.

Exemple

from ultralytics import YOLO

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

model = YOLO("yolov8n.engine", task="detect") # load the model
  1. Exporte avec des axes dynamiques, ceci sera activé par défaut lors de l'exportation avec int8=True même si elle n'est pas explicitement définie. Voir aussi arguments d'exportation pour plus d'informations.
  2. Définit une taille de lot maximale de 8 pour le modèle exporté, qui se calibre avec batch = 2 *×* 8 pour éviter les erreurs d'échelle lors de l'étalonnage.
  3. Alloue 4 GiB de mémoire au lieu d'allouer l'ensemble du périphérique pour le processus de conversion.
  4. Utilise l'ensemble de données COCO pour l'étalonnage, en particulier les images utilisées pour la validation (5 000 au total).
Cache d'Ă©talonnage

TensorRT génère un étalonnage .cache qui peut être réutilisé pour accélérer l'exportation des poids des modèles futurs en utilisant les mêmes données, mais cela peut entraîner un mauvais calibrage lorsque les données sont très différentes ou si le batch est modifiée de façon radicale. Dans ces circonstances, les .cache doit être renommée et déplacée dans un autre répertoire ou entièrement supprimée.

Avantages de l'utilisation de YOLO avec TensorRT INT8

  • Taille rĂ©duite du modèle : La quantification de FP32 Ă  INT8 peut rĂ©duire la taille du modèle par 4 (sur disque ou en mĂ©moire), ce qui permet d'accĂ©lĂ©rer les temps de tĂ©lĂ©chargement, de rĂ©duire les besoins en stockage et de rĂ©duire l'empreinte mĂ©moire lors du dĂ©ploiement d'un modèle.

  • Consommation d'Ă©nergie rĂ©duite : Les opĂ©rations de prĂ©cision rĂ©duite pour les modèles YOLO exportĂ©s par INT8 peuvent consommer moins d'Ă©nergie que les modèles FP32, en particulier pour les appareils alimentĂ©s par batterie.

  • Vitesse d'infĂ©rence amĂ©liorĂ©e : TensorRT optimise le modèle pour le matĂ©riel cible, ce qui permet d'accĂ©lĂ©rer la vitesse d'infĂ©rence sur les GPU, les appareils embarquĂ©s et les accĂ©lĂ©rateurs.

Note sur les vitesses d'inférence

Les premiers appels d'inférence avec un modèle exporté vers TensorRT INT8 peuvent être plus longs que d'habitude pour le prétraitement, l'inférence et/ou le post-traitement. Cela peut également se produire lorsque l'on modifie imgsz pendant l'inférence, en particulier lorsque imgsz n'est pas la même que celle qui a été spécifiée lors de l'exportation (export imgsz est défini comme TensorRT profil "optimal").

Inconvénients de l'utilisation de YOLO avec TensorRT INT8

  • Diminution des paramètres d'Ă©valuation : L'utilisation d'une prĂ©cision infĂ©rieure signifie que mAP, Precision, Recall ou tout autre autre mesure utilisĂ©e pour Ă©valuer la performance du modèle est probablement un peu pire. Voir les Section des rĂ©sultats de performance pour comparer les diffĂ©rences entre les mAP50 et mAP50-95 lors de l'exportation avec INT8 sur un petit Ă©chantillon de divers appareils.

  • Augmentation des temps de dĂ©veloppement : Trouver les paramètres "optimaux" pour l'Ă©talonnage de l'INT8 en fonction de l'ensemble de donnĂ©es et de l'appareil peut nĂ©cessiter un nombre important de tests.

  • DĂ©pendance Ă  l'Ă©gard du matĂ©riel : L'Ă©talonnage et les gains de performance pourraient dĂ©pendre fortement du matĂ©riel et les poids des modèles sont moins transfĂ©rables.

Ultralytics YOLO TensorRT Performances Ă  l'exportation

NVIDIA A100

Performance

Testé avec Ubuntu 22.04.3 LTS, python 3.10.12, ultralytics==8.2.4, tensorrt==8.6.1.post1

Voir Detection Docs pour des exemples d'utilisation de ces modèles formés sur COCO, qui comprennent 80 classes préformées.

Note

Temps d'inférence indiqués pour mean, min (le plus rapide), et max (le plus lent) pour chaque test en utilisant les poids pré-entraînés yolov8n.engine

Précision Test d'évaluation moyenne
(ms)
min | max
(ms)
mAPval
50(B
)
mAPval
50-95(B
)
batch taille
(pixels)
FP32 Prévoir 0.52 0.51 | 0.56 8 640
FP32 COCOval 0.52 0.52 0.37 1 640
FP16 Prévoir 0.34 0.34 | 0.41 8 640
FP16 COCOval 0.33 0.52 0.37 1 640
INT8 Prévoir 0.28 0.27 | 0.31 8 640
INT8 COCOval 0.29 0.47 0.33 1 640

Voir Segmentation Docs pour des exemples d'utilisation de ces modèles formés sur COCO, qui comprennent 80 classes préformées.

Note

Temps d'inférence indiqués pour mean, min (le plus rapide), et max (le plus lent) pour chaque test en utilisant les poids pré-entraînés yolov8n-seg.engine

Précision Test d'évaluation moyenne
(ms)
min | max
(ms)
mAPval
50(B
)
mAPval
50-95(B
)
mAPval
50(M
)
mAPval
50-95(M
)
batch taille
(pixels)
FP32 Prévoir 0.62 0.61 | 0.68 8 640
FP32 COCOval 0.63 0.52 0.36 0.49 0.31 1 640
FP16 Prévoir 0.40 0.39 | 0.44 8 640
FP16 COCOval 0.43 0.52 0.36 0.49 0.30 1 640
INT8 Prévoir 0.34 0.33 | 0.37 8 640
INT8 COCOval 0.36 0.46 0.32 0.43 0.27 1 640

Voir les documents sur la classification pour des exemples d'utilisation de ces modèles formés sur ImageNet, qui comprennent 1000 classes préformées.

Note

Temps d'inférence indiqués pour mean, min (le plus rapide), et max (le plus lent) pour chaque test en utilisant les poids pré-entraînés yolov8n-cls.engine

Précision Test d'évaluation moyenne
(ms)
min | max
(ms)
top-1 top-5 batch taille
(pixels)
FP32 Prévoir 0.26 0.25 | 0.28 0.35 0.61 8 640
FP32 ImageNetval 0.26 1 640
FP16 Prévoir 0.18 0.17 | 0.19 0.35 0.61 8 640
FP16 ImageNetval 0.18 1 640
INT8 Prévoir 0.16 0.15 | 0.57 0.32 0.59 8 640
INT8 ImageNetval 0.15 1 640

Voir Pose Estimation Docs pour des exemples d'utilisation de ces modèles formés sur COCO, qui incluent une classe préformée, "personne".

Note

Temps d'inférence indiqués pour mean, min (le plus rapide), et max (le plus lent) pour chaque test en utilisant les poids pré-entraînés yolov8n-pose.engine

Précision Test d'évaluation moyenne
(ms)
min | max
(ms)
mAPval
50(B
)
mAPval
50-95(B
)
mAPval
50(P
)
mAPval
50-95(P
)
batch taille
(pixels)
FP32 Prévoir 0.54 0.53 | 0.58 8 640
FP32 COCOval 0.55 0.91 0.69 0.80 0.51 1 640
FP16 Prévoir 0.37 0.35 | 0.41 8 640
FP16 COCOval 0.36 0.91 0.69 0.80 0.51 1 640
INT8 Prévoir 0.29 0.28 | 0.33 8 640
INT8 COCOval 0.30 0.90 0.68 0.78 0.47 1 640

Voir Oriented Detection Docs pour des exemples d'utilisation de ces modèles formés sur DOTAv1, qui comprennent 15 classes préformées.

Note

Temps d'inférence indiqués pour mean, min (le plus rapide), et max (le plus lent) pour chaque test en utilisant les poids pré-entraînés yolov8n-obb.engine

Précision Test d'évaluation moyenne
(ms)
min | max
(ms)
mAPval
50(B
)
mAPval
50-95(B
)
batch taille
(pixels)
FP32 Prévoir 0.52 0.51 | 0.59 8 640
FP32 DOTAv1val 0.76 0.50 0.36 1 640
FP16 Prévoir 0.34 0.33 | 0.42 8 640
FP16 DOTAv1val 0.59 0.50 0.36 1 640
INT8 Prévoir 0.29 0.28 | 0.33 8 640
INT8 DOTAv1val 0.32 0.45 0.32 1 640

GPU grand public

Performance de détection (COCO)

Testé avec Windows 10.0.19045, python 3.10.9, ultralytics==8.2.4, tensorrt==10.0.0b6

Note

Temps d'inférence indiqués pour mean, min (le plus rapide), et max (le plus lent) pour chaque test en utilisant les poids pré-entraînés yolov8n.engine

Précision Test d'évaluation moyenne
(ms)
min | max
(ms)
mAPval
50(B
)
mAPval
50-95(B
)
batch taille
(pixels)
FP32 Prévoir 1.06 0.75 | 1.88 8 640
FP32 COCOval 1.37 0.52 0.37 1 640
FP16 Prévoir 0.62 0.75 | 1.13 8 640
FP16 COCOval 0.85 0.52 0.37 1 640
INT8 Prévoir 0.52 0.38 | 1.00 8 640
INT8 COCOval 0.74 0.47 0.33 1 640

Testé avec Windows 10.0.22631, python 3.11.9, ultralytics==8.2.4, tensorrt==10.0.1

Note

Temps d'inférence indiqués pour mean, min (le plus rapide), et max (le plus lent) pour chaque test en utilisant les poids pré-entraînés yolov8n.engine

Précision Test d'évaluation moyenne
(ms)
min | max
(ms)
mAPval
50(B
)
mAPval
50-95(B
)
batch taille
(pixels)
FP32 Prévoir 1.76 1.69 | 1.87 8 640
FP32 COCOval 1.94 0.52 0.37 1 640
FP16 Prévoir 0.86 0.75 | 1.00 8 640
FP16 COCOval 1.43 0.52 0.37 1 640
INT8 Prévoir 0.80 0.75 | 1.00 8 640
INT8 COCOval 1.35 0.47 0.33 1 640

Testé avec Pop!_OS 22.04 LTS, python 3.10.12, ultralytics==8.2.4, tensorrt==8.6.1.post1

Note

Temps d'inférence indiqués pour mean, min (le plus rapide), et max (le plus lent) pour chaque test en utilisant les poids pré-entraînés yolov8n.engine

Précision Test d'évaluation moyenne
(ms)
min | max
(ms)
mAPval
50(B
)
mAPval
50-95(B
)
batch taille
(pixels)
FP32 Prévoir 2.84 2.84 | 2.85 8 640
FP32 COCOval 2.94 0.52 0.37 1 640
FP16 Prévoir 1.09 1.09 | 1.10 8 640
FP16 COCOval 1.20 0.52 0.37 1 640
INT8 Prévoir 0.75 0.74 | 0.75 8 640
INT8 COCOval 0.76 0.47 0.33 1 640

Appareils embarqués

Performance de détection (COCO)

Testé avec JetPack 5.1.3 (L4T 35.5.0) Ubuntu 20.04.6, python 3.8.10, ultralytics==8.2.4, tensorrt==8.5.2.2

Note

Temps d'inférence indiqués pour mean, min (le plus rapide), et max (le plus lent) pour chaque test en utilisant les poids pré-entraînés yolov8n.engine

Précision Test d'évaluation moyenne
(ms)
min | max
(ms)
mAPval
50(B
)
mAPval
50-95(B
)
batch taille
(pixels)
FP32 Prévoir 6.90 6.89 | 6.93 8 640
FP32 COCOval 6.97 0.52 0.37 1 640
FP16 Prévoir 3.36 3.35 | 3.39 8 640
FP16 COCOval 3.39 0.52 0.37 1 640
INT8 Prévoir 2.32 2.32 | 2.34 8 640
INT8 COCOval 2.33 0.47 0.33 1 640

MĂ©thodes d'Ă©valuation

Développe les sections ci-dessous pour obtenir des informations sur la façon dont ces modèles ont été exportés et testés.

Exporter les configurations

Voir le mode d'exportation pour plus de détails sur les arguments de configuration de l'exportation.

from ultralytics import YOLO

model = YOLO("yolov8n.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
out = model.export(
    format="engine",
    imgsz:640,
    dynamic:True,
    verbose:False,
    batch:8,
    workspace:2,
    int8=True,
    data:"data.yaml"  # COCO, ImageNet, or DOTAv1 for appropriate model task
)
Prédire la boucle

Voir le mode prédictif pour plus d'informations.

import cv2
from ultralytics import YOLO

model = YOLO("yolov8n.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"
    )
Configuration de la validation

Voir val mode pour en savoir plus sur les arguments de configuration de la validation.

from ultralytics import YOLO

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

Déploiement des modèles exportés YOLOv8 TensorRT

Après avoir exporté avec succès tes modèles Ultralytics YOLOv8 au format TensorRT , tu es maintenant prêt à les déployer. Pour obtenir des instructions détaillées sur le déploiement de tes modèles TensorRT dans différents contextes, jette un coup d'œil aux ressources suivantes :

Résumé

Dans ce guide, nous nous sommes concentrés sur la conversion des modèles Ultralytics YOLOv8 au format de modèle TensorRT de NVIDIA. Cette étape de conversion est cruciale pour améliorer l'efficacité et la rapidité des modèles YOLOv8 , ce qui les rend plus efficaces et adaptés à divers environnements de déploiement.

Pour plus d'informations sur les détails d'utilisation, jette un coup d'œil à la documentation officielle deTensorRT .

Si tu es curieux de connaître d'autres intégrations de Ultralytics YOLOv8 , notre page de guide d'intégration fournit une vaste sélection de ressources et d'informations.



Créé le 2024-01-28, Mis à jour le 2024-05-08
Auteurs : Burhan-Q (1), glenn-jocher (1), abirami-vina (1)

Commentaires