Vai al contenuto

TensorRT Esportazione per i modelli di YOLOv8

La distribuzione di modelli di computer vision in ambienti ad alte prestazioni può richiedere un formato che massimizzi la velocità e l'efficienza. Questo è particolarmente vero quando il modello viene distribuito su GPU NVIDIA.

Utilizzando il formato di esportazione TensorRT , è possibile migliorare i modelli Ultralytics YOLOv8 modelli per un'inferenza rapida ed efficiente su hardware NVIDIA. Questa guida ti fornirà i passaggi più semplici da seguire per il processo di conversione e ti aiuterà a sfruttare al meglio la tecnologia avanzata di NVIDIA nei tuoi progetti di deep learning.

TensorRT

TensorRT Panoramica

TensorRT, sviluppato da NVIDIA, è un kit di sviluppo software (SDK) avanzato progettato per l'inferenza di apprendimento profondo ad alta velocità. È particolarmente indicato per applicazioni in tempo reale come il rilevamento di oggetti.

Questo toolkit ottimizza i modelli di deep learning per le GPU NVIDIA e consente di ottenere operazioni più rapide ed efficienti. I modelli di TensorRT sono sottoposti all'ottimizzazione di TensorRT , che include tecniche come la fusione dei livelli, la calibrazione della precisione (INT8 e FP16), la gestione dinamica della memoria di tensor e l'autotuning del kernel. La conversione dei modelli di deep learning nel formato TensorRT permette agli sviluppatori di sfruttare appieno le potenzialità delle GPU NVIDIA.

TensorRT è noto per la sua compatibilità con diversi formati di modelli, tra cui TensorFlow, PyTorch, e ONNX, offrendo agli sviluppatori una soluzione flessibile per l'integrazione e l'ottimizzazione di modelli provenienti da framework diversi. Questa versatilità consente un'efficiente distribuzione dei modelli in diversi ambienti hardware e software.

Caratteristiche principali dei modelli TensorRT

TensorRT I modelli offrono una serie di caratteristiche chiave che contribuiscono alla loro efficienza ed efficacia nell'inferenza di deep learning ad alta velocità:

  • Calibrazione di precisione: TensorRT supporta la calibrazione di precisione, consentendo di regolare i modelli in base a specifici requisiti di accuratezza. Questo include il supporto di formati a precisione ridotta come INT8 e FP16, che possono aumentare ulteriormente la velocità di inferenza mantenendo livelli di accuratezza accettabili.

  • Fusione di livelli: Il processo di ottimizzazione di TensorRT include la fusione dei livelli, in cui più livelli di una rete neurale vengono combinati in un'unica operazione. Questo riduce l'overhead computazionale e migliora la velocità di inferenza minimizzando l'accesso alla memoria e il calcolo.

TensorRT Fusione di livelli

  • Gestione dinamica della memoria di Tensor : TensorRT gestisce in modo efficiente l'utilizzo della memoria di tensor durante l'inferenza, riducendo l'overhead della memoria e ottimizzando l'allocazione della stessa. Questo si traduce in un utilizzo più efficiente della memoria della GPU.

  • Sintonizzazione automatica del kernel: TensorRT applica la sintonizzazione automatica del kernel per selezionare il kernel della GPU più ottimizzato per ogni livello del modello. Questo approccio adattivo garantisce che il modello sfrutti appieno la potenza di calcolo della GPU.

Opzioni di distribuzione in TensorRT

Prima di vedere il codice per esportare i modelli YOLOv8 nel formato TensorRT , cerchiamo di capire dove vengono normalmente utilizzati i modelli TensorRT .

TensorRT offre diverse opzioni di implementazione e ognuna di esse bilancia la facilità di integrazione, l'ottimizzazione delle prestazioni e la flessibilità in modo diverso:

  • Distribuzione all'interno di TensorFlow: questo metodo integra TensorRT in TensorFlow, consentendo ai modelli ottimizzati di essere eseguiti in un ambiente familiare come TensorFlow . È utile per i modelli con un mix di livelli supportati e non supportati, in quanto TF-TRT può gestirli in modo efficiente.

TensorRT Panoramica

  • API runtime standalone TensorRT : Offre un controllo granulare, ideale per le applicazioni critiche dal punto di vista delle prestazioni. È più complessa, ma consente l'implementazione personalizzata di operatori non supportati.

  • NVIDIA Triton Inference Server: Un'opzione che supporta modelli di vari framework. Particolarmente adatto per l'inferenza nel cloud o sul bordo, offre funzionalità come l'esecuzione concorrente del modello e l'analisi del modello.

Esportare i modelli di YOLOv8 in TensorRT

Puoi migliorare l'efficienza dell'esecuzione e ottimizzare le prestazioni convertendo i modelli di YOLOv8 in formato TensorRT .

Installazione

Per installare il pacchetto richiesto, esegui:

Installazione

# Install the required package for YOLOv8
pip install ultralytics

Per istruzioni dettagliate e buone pratiche relative al processo di installazione, consulta la nostra Guida all'installazione diYOLOv8 . Durante l'installazione dei pacchetti necessari per YOLOv8, se dovessi incontrare delle difficoltà, consulta la nostra guida sui problemi comuni per trovare soluzioni e suggerimenti.

Utilizzo

Prima di immergerti nelle istruzioni per l'uso, assicurati di dare un'occhiata alla gamma di modelli diYOLOv8 offerti da Ultralytics. Questo ti aiuterà a scegliere il modello più adatto alle esigenze del tuo progetto.

Utilizzo

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'

Per maggiori dettagli sul processo di esportazione, visita la pagina di documentazione diUltralytics sull'esportazione.

Distribuzione dei modelli esportati di YOLOv8 TensorRT

Dopo aver esportato con successo i tuoi modelli Ultralytics YOLOv8 nel formato TensorRT , sei pronto a distribuirli. Per istruzioni approfondite su come distribuire i tuoi modelli TensorRT in varie impostazioni, consulta le seguenti risorse:

Sommario

In questa guida ci siamo concentrati sulla conversione dei modelli Ultralytics YOLOv8 nel formato dei modelli TensorRT di NVIDIA. Questa fase di conversione è fondamentale per migliorare l'efficienza e la velocità dei modelli YOLOv8 , rendendoli più efficaci e adatti a diversi ambienti di distribuzione.

Per maggiori informazioni sui dettagli di utilizzo, consulta la documentazione ufficiale di TensorRT .

Se sei curioso di conoscere altre integrazioni di Ultralytics YOLOv8 , la nostra pagina di guida all'integrazione offre un'ampia selezione di risorse informative e approfondimenti.



Creato 2024-01-28, Aggiornato 2024-01-28
Autori: abirami-vina (1)

Commenti