Meet YOLO26: next-gen vision AI.

Link to this sectionEsportazione TensorRT per modelli YOLO26#

Distribuire modelli di computer vision in ambienti ad alte prestazioni può richiedere un formato che massimizzi velocità ed efficienza. Questo è particolarmente vero quando distribuisci il tuo modello su GPU NVIDIA.

Utilizzando il formato di esportazione TensorRT, puoi potenziare i tuoi modelli Ultralytics YOLO26 per un'inferenza rapida ed efficiente su hardware NVIDIA. Questa guida ti fornirà passaggi 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.

Link to this sectionTensorRT#

NVIDIA TensorRT optimization workflow

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

Questo toolkit ottimizza i modelli di deep learning per GPU NVIDIA e produce operazioni più veloci ed efficienti. I modelli TensorRT vengono sottoposti a ottimizzazione TensorRT, che include tecniche come la fusione dei layer, la calibrazione della precisione (INT8 e FP16), la gestione dinamica della memoria dei tensori e l'auto-tuning del kernel. Convertire i modelli di deep learning nel formato TensorRT permette agli sviluppatori di realizzare appieno il potenziale delle GPU NVIDIA.

TensorRT è noto per la sua compatibilità con vari formati di modelli, inclusi TensorFlow, PyTorch e ONNX, fornendo agli sviluppatori una soluzione flessibile per integrare e ottimizzare modelli provenienti da diversi framework. Questa versatilità consente una distribuzione del modello efficiente in diversi ambienti hardware e software.

Link to this sectionCaratteristiche principali dei modelli TensorRT#

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

  • Precision Calibration: TensorRT supporta la calibrazione della precisione, consentendo ai modelli di essere ottimizzati per requisiti di accuratezza specifici. Ciò include il supporto per formati a precisione ridotta come INT8 e FP16, che possono aumentare ulteriormente la velocità di inferenza mantenendo livelli di accuratezza accettabili.

  • Layer Fusion: Il processo di ottimizzazione TensorRT include la fusione dei layer, in cui più layer di una rete neurale vengono combinati in un'unica operazione. Ciò riduce l'overhead computazionale e migliora la velocità di inferenza riducendo al minimo l'accesso alla memoria e il calcolo.

TensorRT neural network layer fusion optimization

  • Dynamic Tensor Memory Management: TensorRT gestisce in modo efficiente l'utilizzo della memoria dei tensori durante l'inferenza, riducendo l'overhead di memoria e ottimizzando l'allocazione della stessa. Ciò si traduce in un utilizzo più efficiente della memoria GPU.

  • Automatic Kernel Tuning: TensorRT applica l'auto-tuning del kernel per selezionare il kernel GPU più ottimizzato per ogni layer del modello. Questo approccio adattivo garantisce che il modello sfrutti appieno la potenza computazionale della GPU.

Link to this sectionOpzioni di distribuzione in TensorRT#

Prima di esaminare il codice per esportare i modelli YOLO26 nel formato TensorRT, capiamo dove vengono solitamente utilizzati i modelli TensorRT.

TensorRT offre diverse opzioni di distribuzione, ognuna delle quali bilancia diversamente facilità di integrazione, ottimizzazione delle prestazioni e flessibilità:

  • Distribuzione all'interno di TensorFlow: Questo metodo integra TensorRT in TensorFlow, permettendo ai modelli ottimizzati di girare in un ambiente TensorFlow familiare. È utile per modelli con un mix di layer supportati e non, poiché TF-TRT può gestirli in modo efficiente.

NVIDIA TensorRT optimization workflow

  • Standalone TensorRT Runtime API: Offre un controllo granulare, ideale per applicazioni dove le prestazioni sono critiche. È più complesso ma consente un'implementazione personalizzata degli operatori non supportati.

  • NVIDIA Triton Inference Server: Un'opzione che supporta modelli da vari framework. Particolarmente adatto per l'inferenza su cloud o edge, fornisce funzionalità come l'esecuzione simultanea dei modelli e l'analisi dei modelli.

Link to this sectionEsportazione di modelli YOLO26 in TensorRT#

Puoi migliorare l'efficienza di esecuzione e ottimizzare le prestazioni convertendo i modelli YOLO26 nel formato TensorRT.

Link to this sectionInstallazione#

Per installare il pacchetto richiesto, esegui:

Installazione
# Install the required package for YOLO26
pip install ultralytics

Per istruzioni dettagliate e best practice relative al processo di installazione, consulta la nostra guida all'installazione YOLO26. Durante l'installazione dei pacchetti necessari per YOLO26, se riscontri difficoltà, consulta la nostra guida ai problemi comuni per soluzioni e suggerimenti.

Link to this sectionUtilizzo#

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

Il formato TensorRT supporta le modalità Export, Predict e Validate. L'inferenza e la convalida richiedono una GPU NVIDIA. Esporta il tuo modello, quindi carica il modello esportato per eseguire l'inferenza o convalidarne l'accuratezza.

Esportazione
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'
Previsione
from ultralytics import YOLO

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

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Convalida
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 sectionArgomenti di esportazione#

ArgomentoTipoPredefinitoDescrizione
formatstr'engine'Formato di destinazione per il modello esportato, che definisce la compatibilità con vari ambienti di distribuzione.
imgszint o tuple640Dimensione dell'immagine desiderata per l'input del modello. Può essere un numero intero per immagini quadrate o una tupla (height, width) per dimensioni specifiche.
halfboolFalseAbilita la quantizzazione FP16 (mezza precisione), riducendo la dimensione del modello e potenzialmente accelerando l'inferenza sull'hardware supportato.
int8boolFalseAttiva la quantizzazione INT8, comprimendo ulteriormente il modello e velocizzando l'inferenza con una perdita minima di precisione, principalmente per dispositivi edge.
dynamicboolFalseConsente dimensioni di input dinamiche, migliorando la flessibilità nella gestione di dimensioni variabili delle immagini.
simplifyboolTrueSemplifica il grafo del modello con onnxslim, migliorando potenzialmente le prestazioni e la compatibilità.
workspacefloat o NoneNoneImposta la dimensione massima dell'area di lavoro in GiB per le ottimizzazioni TensorRT, bilanciando l'utilizzo della memoria e le prestazioni; usa None per l'auto-allocazione da parte di TensorRT fino al massimo del dispositivo.
nmsboolFalseAggiunge la Non-Maximum Suppression (NMS), essenziale per un post-processing del rilevamento accurato ed efficiente.
batchint1Specifica la dimensione dell'inferenza batch del modello esportato o il numero massimo di immagini che il modello esportato elaborerà simultaneamente in modalità predict.
datastr'coco8.yaml'Percorso al file di configurazione del dataset (default: coco8.yaml), essenziale per la quantizzazione.
fractionfloat1.0Specifica la frazione del dataset da utilizzare per la calibrazione della quantizzazione INT8. Consente la calibrazione su un sottoinsieme del dataset completo, utile per esperimenti o quando le risorse sono limitate. Se non specificato con INT8 abilitato, verrà utilizzato l'intero dataset.
devicestrNoneSpecifica il dispositivo per l'esportazione: GPU (device=0), DLA per NVIDIA Jetson (device=dla:0 o device=dla:1).
Suggerimento

Assicurati di utilizzare una GPU con supporto CUDA durante l'esportazione in TensorRT.

TensorRT 11.0 e DLA

TensorRT 11.0 non supporta DLA; usa TensorRT 10.x per device=dla:0 o device=dla:1, oppure esporta un engine GPU per TensorRT 11.0.

Per ulteriori dettagli sul processo di esportazione, visita la pagina della documentazione di Ultralytics sull'esportazione.

Link to this sectionEsportazione TensorRT con quantizzazione INT8#

L'esportazione dei modelli Ultralytics YOLO tramite TensorRT con precisione INT8 esegue la quantizzazione post-addestramento (PTQ). TensorRT utilizza la calibrazione per il PTQ, che misura la distribuzione delle attivazioni all'interno di ogni tensore di attivazione mentre il modello YOLO elabora l'inferenza su dati di input rappresentativi, e quindi utilizza quella distribuzione per stimare i valori di scala per ogni tensore. Ogni tensore di attivazione candidato alla quantizzazione ha una scala associata dedotta da un processo di calibrazione.

Quantizzazione TensorRT 11

TensorRT 11 ha rimosso la quantizzazione implicita e l'interfaccia IInt8Calibrator. Su TensorRT 11 e versioni successive, Ultralytics esegue la quantizzazione INT8 con la quantizzazione esplicita di NVIDIA ModelOpt, che inserisce i nodi Q/DQ nel grafo ONNX prima di costruire un motore fortemente tipizzato, e l'FP16 viene applicato con la conversione a precisione mista AutoCast di ModelOpt. Gli argomenti int8=True, half=True e data funzionano allo stesso modo; ModelOpt viene installato automaticamente al primo utilizzo. Su TensorRT 7-10 viene invece utilizzato il calibratore legacy descritto di seguito.

Durante l'elaborazione di reti quantizzate implicitamente, TensorRT utilizza INT8 in modo opportunistico per ottimizzare il tempo di esecuzione dei layer. Se un layer viene eseguito più velocemente in INT8 e ha scale di quantizzazione assegnate sui suoi input e output di dati, allora viene assegnato a quel layer un kernel con precisione INT8, altrimenti TensorRT seleziona una precisione FP32 o FP16 per il kernel in base a ciò che risulta in un tempo di esecuzione più rapido per quel layer.

Suggerimento

È critico assicurarsi che lo stesso dispositivo che utilizzerà i pesi del modello TensorRT per la distribuzione venga utilizzato per l'esportazione con precisione INT8, poiché i risultati della calibrazione possono variare tra i dispositivi.

Link to this sectionConfigurazione dell'esportazione INT8#

Gli argomenti forniti durante l'utilizzo di export per un modello Ultralytics YOLO influenzeranno notevolmente le prestazioni del modello esportato. Dovranno anche essere selezionati in base alle risorse del dispositivo disponibili, tuttavia gli argomenti predefiniti dovrebbero funzionare per la maggior parte delle GPU discrete NVIDIA Ampere (o successive). L'algoritmo di calibrazione utilizzato è "MINMAX_CALIBRATION" per le esportazioni su GPU, mentre le esportazioni DLA su NVIDIA Jetson utilizzano "ENTROPY_CALIBRATION_2". Puoi leggere ulteriori dettagli sulle opzioni disponibili nella Guida per gli sviluppatori di TensorRT. I test di Ultralytics hanno riscontrato che "MINMAX_CALIBRATION" è la scelta migliore per le esportazioni su GPU e l'algoritmo viene selezionato automaticamente in base al dispositivo di esportazione.

  • workspace : Controlla la dimensione (in GiB) dell'allocazione di memoria del dispositivo durante la conversione dei pesi del modello.

    • Regola il valore di workspace in base alle tue esigenze di calibrazione e alla disponibilità di risorse. Sebbene un workspace più ampio possa aumentare il tempo di calibrazione, consente a TensorRT di esplorare una gamma più ampia di tattiche di ottimizzazione, migliorando potenzialmente le prestazioni e l'accuratezza del modello. Al contrario, un workspace più piccolo può ridurre il tempo di calibrazione ma potrebbe limitare le strategie di ottimizzazione, influenzando la qualità del modello quantizzato.

    • L'impostazione predefinita è workspace=None, che consentirà a TensorRT di allocare automaticamente la memoria; durante la configurazione manuale, questo valore potrebbe dover essere aumentato se la calibrazione si arresta in modo anomalo (esce senza preavviso).

    • TensorRT segnalerà UNSUPPORTED_STATE durante l'esportazione se il valore per workspace è maggiore della memoria disponibile per il dispositivo, il che significa che il valore per workspace dovrebbe essere ridotto o impostato su None.

    • Se workspace è impostato sul valore massimo e la calibrazione fallisce o si blocca, considera l'utilizzo di None per l'allocazione automatica o riduci i valori di imgsz e batch per ridurre i requisiti di memoria.

    • Ricorda: la calibrazione per INT8 è specifica per ogni dispositivo; prendere in prestito una GPU "di fascia alta" per la calibrazione potrebbe comportare scarse prestazioni quando l'inferenza viene eseguita su un altro dispositivo.

  • batch : La dimensione massima del batch che verrà utilizzata per l'inferenza. Durante l'inferenza possono essere utilizzati batch più piccoli, ma l'inferenza non accetterà batch più grandi di quanto specificato.

Nota

L'utilizzo di batch piccoli può portare a un ridimensionamento impreciso durante la calibrazione INT8. Questo perché il processo si adatta in base ai dati che vede. I batch piccoli potrebbero non catturare l'intera gamma di valori, portando a problemi con la calibrazione finale. L'utilizzo di una dimensione del batch più ampia aiuta a garantire risultati di calibrazione più rappresentativi.

La sperimentazione da parte di NVIDIA li ha portati a consigliare l'utilizzo di almeno 500 immagini di calibrazione che siano rappresentative dei dati per il tuo modello, con la calibrazione della quantizzazione INT8. Questa è una linea guida e non un requisito rigido, e dovrai sperimentare cosa è necessario per ottenere buoni risultati per il tuo dataset. Poiché i dati di calibrazione sono necessari per la calibrazione INT8 con TensorRT, assicurati di utilizzare l'argomento data quando int8=True per TensorRT e utilizza data="my_dataset.yaml", che utilizzerà le immagini dalla convalida per calibrare. Quando non viene passato alcun valore per data con l'esportazione in TensorRT con quantizzazione INT8, l'impostazione predefinita sarà quella di utilizzare uno dei dataset di esempio "piccoli" basati sul task del modello invece di generare un errore.

Esempio
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. Esporta con assi dinamici; questo sarà abilitato per impostazione predefinita durante l'esportazione con int8=True anche se non impostato esplicitamente. Vedi argomenti di esportazione per ulteriori informazioni.
  2. Imposta la dimensione massima del batch a 8 per il modello esportato e la calibrazione INT8.
  3. Alloca 4 GiB di memoria invece di allocare l'intero dispositivo per il processo di conversione.
  4. Utilizza il dataset COCO per la calibrazione, nello specifico le immagini utilizzate per la convalida (5.000 in totale).
Cache di calibrazione

TensorRT genererà una .cache di calibrazione che può essere riutilizzata per velocizzare l'esportazione di futuri pesi del modello utilizzando gli stessi dati, ma ciò potrebbe comportare una calibrazione scadente quando i dati sono molto diversi o se il valore di batch viene modificato drasticamente. In queste circostanze, la .cache esistente dovrebbe essere rinominata e spostata in una directory diversa o eliminata completamente.

Link to this sectionVantaggi dell'utilizzo di YOLO con TensorRT INT8#

  • Dimensione del modello ridotta: La quantizzazione da FP32 a INT8 può ridurre la dimensione del modello di 4 volte (su disco o in memoria), portando a tempi di download più rapidi, requisiti di archiviazione inferiori e un ingombro di memoria ridotto durante la distribuzione di un modello.

  • Minore consumo energetico: Le operazioni a precisione ridotta per i modelli YOLO esportati in INT8 possono consumare meno energia rispetto ai modelli FP32, specialmente per i dispositivi alimentati a batteria.

  • Velocità di inferenza migliorate: TensorRT ottimizza il modello per l'hardware di destinazione, portando potenzialmente a velocità di inferenza più elevate su GPU, dispositivi embedded e acceleratori.

Nota sulle velocità di inferenza

Le prime chiamate di inferenza con un modello esportato in TensorRT INT8 possono avere tempi di pre-elaborazione, inferenza e/o post-elaborazione più lunghi del solito. Questo può verificarsi anche quando si modifica imgsz durante l'inferenza, specialmente quando imgsz non è uguale a quello specificato durante l'esportazione (l'esportazione imgsz è impostata come profilo "ottimale" di TensorRT).

Link to this sectionSvantaggi dell'utilizzo di YOLO con TensorRT INT8#

  • Diminuzioni nelle metriche di valutazione: L'utilizzo di una precisione inferiore significherà che mAP, Precision, Recall o qualsiasi altra metrica utilizzata per valutare le prestazioni del modello sarà probabilmente leggermente peggiore. Vedi la sezione Risultati delle prestazioni per confrontare le differenze in mAP50 e mAP50-95 durante l'esportazione con INT8 su un piccolo campione di vari dispositivi.

  • Tempi di sviluppo aumentati: Trovare le impostazioni "ottimali" per la calibrazione INT8 per il dataset e il dispositivo può richiedere una notevole quantità di test.

  • Dipendenza dall'hardware: La calibrazione e i guadagni di prestazioni potrebbero essere fortemente dipendenti dall'hardware e i pesi del modello sono meno trasferibili.

Link to this sectionPrestazioni di esportazione Ultralytics YOLO TensorRT#

Link to this sectionNVIDIA A100#

Performance

Testato con Ubuntu 22.04.3 LTS, python 3.10.12, ultralytics==8.2.4, tensorrt==8.6.1.post1

Vedi Documentazione Rilevamento per esempi di utilizzo con questi modelli addestrati su COCO, che includono 80 classi pre-addestrate.

Nota

Tempi di inferenza mostrati per mean, min (più veloce) e max (più lento) per ogni test utilizzando pesi pre-addestrati yolov8n.engine

PrecisionTest di valutazionemedia
(ms)
min | max
(ms)
mAPval
50(B)
mAPval
50-95(B)
batchdimensione
(pixel)
FP32Previsione0.520.51 | 0.568640
FP32COCOval0.520.520.371640
FP16Previsione0.340.34 | 0.418640
FP16COCOval0.330.520.371640
INT8Previsione0.280.27 | 0.318640
INT8COCOval0.290.470.331640

Link to this sectionGPU consumer#

Prestazioni di rilevamento (COCO)

Testato con Windows 10.0.19045, python 3.10.9, ultralytics==8.2.4, tensorrt==10.0.0b6

Nota

Tempi di inferenza mostrati per mean, min (più veloce) e max (più lento) per ogni test utilizzando pesi pre-addestrati yolov8n.engine

PrecisionTest di valutazionemedia
(ms)
min | max
(ms)
mAPval
50(B)
mAPval
50-95(B)
batchdimensione
(pixel)
FP32Previsione1.060.75 | 1.888640
FP32COCOval1.370.520.371640
FP16Previsione0.620.75 | 1.138640
FP16COCOval0.850.520.371640
INT8Previsione0.520.38 | 1.008640
INT8COCOval0.740.470.331640

Link to this sectionDispositivi embedded#

Prestazioni di rilevamento (COCO)

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

Nota

Tempi di inferenza mostrati per mean, min (più veloce) e max (più lento) per ogni test utilizzando pesi pre-addestrati yolov8n.engine

PrecisionTest di valutazionemedia
(ms)
min | max
(ms)
mAPval
50(B)
mAPval
50-95(B)
batchdimensione
(pixel)
FP32Previsione6.116.10 | 6.298640
FP32COCOval6.170.520.371640
FP16Previsione3.183.18 | 3.208640
FP16COCOval3.190.520.371640
INT8Previsione2.302.29 | 2.358640
INT8COCOval2.320.460.321640
Informazioni

Vedi la nostra guida rapida su NVIDIA Jetson con Ultralytics YOLO per saperne di più sull'installazione e la configurazione.

Informazioni

Vedi la nostra guida rapida su NVIDIA DGX Spark con Ultralytics YOLO per saperne di più sull'installazione e la configurazione.

Link to this sectionMetodi di valutazione#

Espandi le sezioni qui sotto per informazioni su come questi modelli sono stati esportati e testati.

Configurazioni di esportazione

Vedi la modalità di esportazione per i dettagli relativi agli argomenti di configurazione dell'esportazione.

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"
)
Ciclo di previsione

Vedi la modalità di previsione per ulteriori informazioni.

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",
    )
Configurazione di validazione

Vedi la modalità val per saperne di più sugli argomenti di configurazione della validazione.

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 sectionDistribuzione dei modelli YOLO26 TensorRT esportati#

Dopo aver esportato con successo i tuoi modelli Ultralytics YOLO26 nel formato TensorRT, sei pronto per distribuirli. Per istruzioni approfondite sulla distribuzione dei tuoi modelli TensorRT in vari contesti, dai un'occhiata alle seguenti risorse:

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

Per ulteriori informazioni sui dettagli di utilizzo, dai un'occhiata alla documentazione ufficiale di TensorRT.

Se sei curioso di conoscere ulteriori integrazioni di Ultralytics YOLO26, la nostra pagina delle guide all'integrazione offre un'ampia selezione di risorse informative e approfondimenti.

Link to this sectionFAQ#

Link to this sectionCome converto i modelli YOLO26 nel formato TensorRT?#

Per convertire i tuoi modelli Ultralytics YOLO26 nel formato TensorRT per un'inferenza ottimizzata su GPU NVIDIA, segui questi passaggi:

  1. Installa il pacchetto richiesto:

    pip install ultralytics
  2. Esporta il tuo modello YOLO26:

    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")

Per maggiori dettagli, visita la guida all'installazione di YOLO26 e la documentazione sull'esportazione.

Link to this sectionQuali sono i vantaggi dell'utilizzo di TensorRT per i modelli YOLO26?#

L'utilizzo di TensorRT per ottimizzare i modelli YOLO26 offre diversi vantaggi:

  • Maggiore velocità di inferenza: TensorRT ottimizza i layer del modello e utilizza la calibrazione della precisione (INT8 e FP16) per velocizzare l'inferenza senza sacrificare significativamente l'accuratezza.
  • Efficienza della memoria: TensorRT gestisce la memoria dei tensori in modo dinamico, riducendo l'overhead e migliorando l'utilizzo della memoria della GPU.
  • Layer Fusion: Combina più layer in singole operazioni, riducendo la complessità computazionale.
  • Kernel Auto-Tuning: Seleziona automaticamente i kernel GPU ottimizzati per ogni layer del modello, garantendo le massime prestazioni.

Per saperne di più, esplora la documentazione ufficiale di TensorRT di NVIDIA e la nostra panoramica approfondita su TensorRT.

Link to this sectionPosso utilizzare la quantizzazione INT8 con TensorRT per i modelli YOLO26?#

Sì, puoi esportare i modelli YOLO26 utilizzando TensorRT con la quantizzazione INT8. Questo processo prevede la quantizzazione post-addestramento (PTQ) e la calibrazione:

  1. Esporta con INT8:

    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")
    model.export(format="engine", batch=8, workspace=4, int8=True, data="coco.yaml")
  2. Esegui l'inferenza:

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

Per maggiori dettagli, consulta la sezione sull'esportazione di TensorRT con quantizzazione INT8.

Link to this sectionCome posso distribuire i modelli YOLO26 TensorRT su un server NVIDIA Triton Inference Server?#

La distribuzione dei modelli YOLO26 TensorRT su un server NVIDIA Triton Inference Server può essere effettuata utilizzando le seguenti risorse:

Queste guide ti aiuteranno a integrare i modelli YOLO26 in modo efficiente in diversi ambienti di distribuzione.

Link to this sectionQuali sono i miglioramenti delle prestazioni osservati con i modelli YOLO26 esportati in TensorRT?#

I miglioramenti delle prestazioni con TensorRT possono variare in base all'hardware utilizzato. Ecco alcuni benchmark tipici:

  • NVIDIA A100:

    • Inferenza FP32: ~0,52 ms / immagine
    • Inferenza FP16: ~0,34 ms / immagine
    • Inferenza INT8: ~0,28 ms / immagine
    • Leggera riduzione dell'mAP con precisione INT8, ma miglioramento significativo della velocità.
  • GPU consumer (es. RTX 3080):

    • Inferenza FP32: ~1,06 ms / immagine
    • Inferenza FP16: ~0,62 ms / immagine
    • Inferenza INT8: ~0,52 ms / immagine

Benchmark dettagliati delle prestazioni per diverse configurazioni hardware sono disponibili nella sezione sulle prestazioni.

Per approfondimenti più completi sulle prestazioni di TensorRT, consulta la documentazione di Ultralytics e i nostri report di analisi delle prestazioni.

Commenti