Esportazione del modello YOLO26 in TorchScript per una distribuzione rapida#
PyTorch ha deprecato TorchScript e ne sta rimuovendo gradualmente le funzionalità. Per le nuove distribuzioni su dispositivi mobili ed edge, usa l'integrazione ExecuTorch supportata. Ultralytics mantiene l'esportazione regolare in TorchScript per la compatibilità con il codice C++ legacy.
La distribuzione di modelli di computer vision in ambienti C++ senza Python richiede una rappresentazione serializzata portabile. TorchScript offre questa compatibilità per le applicazioni LibTorch legacy.
Esporta i tuoi modelli Ultralytics YOLO26 in TorchScript per serializzarli e ottenere compatibilità multipiattaforma e una distribuzione semplificata. In questa guida ti mostreremo come esportare i tuoi modelli YOLO26 nel formato TorchScript, facilitandone l'utilizzo in una gamma più ampia di applicazioni.
Perché dovresti esportare in TorchScript?#

Sviluppato dai creatori di PyTorch, TorchScript è uno strumento potente per ottimizzare e distribuire modelli PyTorch su un'ampia varietà di piattaforme. Esportare i modelli YOLO26 in TorchScript è fondamentale per passare dalla ricerca alle applicazioni del mondo reale. TorchScript, parte del framework PyTorch, contribuisce a rendere più agevole questa transizione consentendo di utilizzare i modelli PyTorch in ambienti che non supportano Python.
Il processo prevede due tecniche: tracing e scripting. Il tracing registra le operazioni durante l'esecuzione del modello, mentre lo scripting consente di definire i modelli usando un sottoinsieme di Python. Queste tecniche assicurano che modelli come YOLO26 possano continuare a funzionare anche al di fuori del loro consueto ambiente Python.

I modelli TorchScript possono inoltre essere ottimizzati mediante tecniche come la fusione degli operatori e il perfezionamento dell'utilizzo della memoria, garantendo un'esecuzione efficiente. Un altro vantaggio dell'esportazione in TorchScript è il suo potenziale per accelerare l'esecuzione dei modelli su diverse piattaforme hardware. Crea una rappresentazione autonoma e pronta per la produzione del tuo modello PyTorch, integrabile in ambienti C++.
Funzionalità principali dei modelli TorchScript#
TorchScript, una componente fondamentale dell'ecosistema PyTorch, offre funzionalità potenti per ottimizzare e distribuire modelli di deep learning.

Ecco le funzionalità principali che rendono TorchScript uno strumento prezioso per gli sviluppatori:
-
Esecuzione di grafi statici: TorchScript utilizza una rappresentazione a grafo statico del calcolo del modello, diversa dall'esecuzione a grafo dinamico di PyTorch. Nell'esecuzione di un grafo statico, il grafo computazionale viene definito e compilato una volta prima dell'esecuzione effettiva, con conseguenti prestazioni migliori durante l'inferenza.
-
Serializzazione dei modelli: TorchScript consente di serializzare i modelli PyTorch in un formato indipendente dalla piattaforma. I modelli serializzati possono essere caricati senza richiedere il codice Python originale, consentendo la distribuzione in diversi ambienti di runtime.
-
Compilazione JIT: TorchScript utilizza la compilazione just-in-time (JIT) per convertire i modelli PyTorch in una rappresentazione intermedia ottimizzata. JIT compila il grafo computazionale del modello, consentendo un'esecuzione efficiente sui dispositivi di destinazione.
-
Conversione graduale: TorchScript offre un approccio di conversione graduale, che consente di convertire in modo incrementale parti del tuo modello PyTorch in TorchScript. Questa flessibilità è particolarmente utile quando si lavora con modelli complessi o si desidera ottimizzare porzioni specifiche del codice.
Opzioni di distribuzione in TorchScript#
Prima di esaminare il codice per esportare i modelli YOLO26 nel formato TorchScript, vediamo dove vengono normalmente utilizzati i modelli TorchScript.
TorchScript offre diverse opzioni di distribuzione per i modelli di machine learning, tra cui:
-
API C++: Il caso d'uso più comune di TorchScript è la sua API C++ LibTorch, che consente di caricare ed eseguire modelli TorchScript ottimizzati direttamente all'interno di applicazioni C++. È ideale per gli ambienti di produzione in cui Python potrebbe non essere adatto o disponibile. L'API C++ offre un'esecuzione efficiente e con overhead ridotto dei modelli TorchScript, massimizzando il potenziale delle prestazioni.
-
Distribuzione su dispositivi mobili: Per l'inferenza a bassa latenza e offline e la privacy dei dati sui dispositivi mobili, usa ExecuTorch, il sostituto di TorchScript Mobile sviluppato da PyTorch.
-
Distribuzione cloud: I modelli TorchScript possono essere distribuiti su server basati sul cloud usando soluzioni come TorchServe. Offre funzionalità come il versionamento dei modelli, il batching e il monitoraggio delle metriche per una distribuzione scalabile negli ambienti di produzione. La distribuzione cloud con TorchScript può rendere i tuoi modelli accessibili tramite API o altri servizi web.
Attività supportate#
L'esportazione in TorchScript supporta tutte e sette le attività Ultralytics. La segmentazione semantica e la stima della profondità sono disponibili solo con YOLO26, l'unica famiglia che include queste head.
| Attività | YOLOv8 | YOLO11 | YOLO26 |
|---|---|---|---|
| Rilevamento | ✅ | ✅ | ✅ |
| Segmentazione | ✅ | ✅ | ✅ |
| Semantica | ❌ | ❌ | ✅ |
| Profondità | ❌ | ❌ | ✅ |
| Classificazione | ✅ | ✅ | ✅ |
| Posa | ✅ | ✅ | ✅ |
| OBB | ✅ | ✅ | ✅ |
Esportazione in TorchScript: conversione del tuo modello YOLO26#
Esportare i modelli YOLO26 in TorchScript ne facilita l'utilizzo in luoghi diversi e li aiuta a funzionare più velocemente e in modo più efficiente. È una soluzione ideale per chi desidera utilizzare i modelli di deep learning in modo più efficace nelle applicazioni del mondo reale.
Installazione#
Per installare il pacchetto richiesto, esegui:
# Install the required package for YOLO26
pip install ultralyticsPer istruzioni dettagliate e best practice relative al processo di installazione, consulta la nostra guida all'installazione di Ultralytics. Se durante l'installazione dei pacchetti necessari per YOLO26 riscontri difficoltà, consulta la nostra guida ai problemi comuni per trovare soluzioni e suggerimenti.
Utilizzo#
Tutti i modelli Ultralytics YOLO26 sono progettati per supportare l'esportazione senza configurazioni aggiuntive, semplificando l'integrazione nel flusso di distribuzione che preferisci. Puoi consultare l'elenco completo dei formati di esportazione supportati e delle opzioni di configurazione per scegliere la configurazione migliore per la tua applicazione.
Il formato TorchScript supporta le modalità Export, Predict e Validate. Esporta il tuo modello, quindi carica il modello esportato per eseguire l'inferenza o convalidarne l'accuratezza.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TorchScript format
model.export(format="torchscript") # creates 'yolo26n.torchscript'from ultralytics import YOLO
# Load the exported TorchScript model
model = YOLO("yolo26n.torchscript")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Load the exported TorchScript model
model = YOLO("yolo26n.torchscript")
# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")Argomenti di esportazione#
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
format | str | 'torchscript' | Formato di destinazione del modello esportato, che definisce la compatibilità con diversi ambienti di distribuzione. |
imgsz | int o tuple | 640 | Dimensione desiderata dell'immagine per l'input del modello. Può essere un numero intero per immagini quadrate o una tupla (height, width) per dimensioni specifiche. |
dynamic | bool | False | Consente dimensioni di input dinamiche, aumentando la flessibilità nella gestione di immagini con dimensioni variabili. |
quantize | int o str | None | Precisione della quantizzazione: 16 (FP16) richiede l'esportazione su GPU con device=0; 32/non impostato è FP32. Sostituisce il flag deprecato half. |
nms | bool, facoltativo | None | Seleziona l'output grezzo (None, predefinito), l'NMS integrato (True) o la testa senza NMS (False). |
batch | int | 1 | Specifica la dimensione del batch di inferenza del modello esportato o il numero massimo di immagini che il modello esportato elaborerà simultaneamente in modalità predict. |
device | str | None | Specifica il dispositivo per l'esportazione: GPU (device=0), CPU (device=cpu), MPS per Apple silicon (device=mps). |
Per ulteriori dettagli sul processo di esportazione, visita la pagina della documentazione Ultralytics sull'esportazione.
Distribuzione dei modelli YOLO26 TorchScript esportati#
Dopo aver esportato correttamente i tuoi modelli Ultralytics YOLO26 nel formato TorchScript, puoi distribuirli. Il primo passaggio principale e consigliato per eseguire un modello TorchScript consiste nell'utilizzare il metodo YOLO("model.torchscript"), come indicato nel precedente frammento di codice d'uso. Per istruzioni approfondite sulla distribuzione dei tuoi modelli TorchScript in altre configurazioni, consulta le seguenti risorse:
-
Esplora la distribuzione su dispositivi mobili: usa la pipeline separata
torch.export()→.ptedi ExecuTorch per la distribuzione mobile attuale di PyTorch. -
Approfondisci la distribuzione lato server: scopri come distribuire i modelli lato server con TorchServe, seguendo un tutorial dettagliato per un'offerta di modelli scalabile ed efficiente.
-
Implementa la distribuzione C++: approfondisci il tutorial sul caricamento di un modello TorchScript in C++, che facilita l'integrazione dei tuoi modelli TorchScript nelle applicazioni C++ per prestazioni e versatilità superiori.
Riepilogo#
In questa guida abbiamo esplorato il processo di esportazione dei modelli Ultralytics YOLO26 nel formato TorchScript. Seguendo le istruzioni fornite, puoi ottimizzare i modelli YOLO26 per ottenere prestazioni migliori e la flessibilità di distribuirli su diverse piattaforme e in vari ambienti.
Per ulteriori dettagli sull'utilizzo, visita la documentazione ufficiale di TorchScript.
Inoltre, se vuoi saperne di più sulle altre integrazioni di Ultralytics YOLO26, visita la nostra pagina della guida alle integrazioni. Troverai numerose risorse e informazioni utili.
FAQ#
L'esportazione di un modello Ultralytics YOLO26 in TorchScript consente una distribuzione flessibile e multipiattaforma. TorchScript, parte dell'ecosistema PyTorch, facilita la serializzazione dei modelli, che possono quindi essere eseguiti in ambienti privi del supporto per Python. Ciò lo rende utile per distribuire modelli in ambienti C++.
Per esportare un modello YOLO26 in TorchScript, puoi usare il seguente codice di esempio:
Utilizzofrom ultralytics import YOLO # Load a YOLO26 model model = YOLO("yolo26n.pt") # Export the model to TorchScript format model.export(format="torchscript") # creates 'yolo26n.torchscript' # Load the exported TorchScript model torchscript_model = YOLO("yolo26n.torchscript") # Run inference results = torchscript_model("https://ultralytics.com/images/bus.jpg")Per ulteriori dettagli sul processo di esportazione, consulta la documentazione Ultralytics sull'esportazione.
L'utilizzo di TorchScript per distribuire i modelli YOLO26 offre diversi vantaggi:
- Portabilità: i modelli esportati possono essere eseguiti in applicazioni C++ senza Python.
- Ottimizzazione: TorchScript supporta l'esecuzione di grafi statici e la compilazione just-in-time (JIT), che possono ottimizzare le prestazioni del modello.
- Integrazione tra linguaggi: i modelli TorchScript possono essere integrati in altri linguaggi di programmazione, aumentando flessibilità ed estensibilità.
- Serializzazione: i modelli possono essere serializzati, consentendo il caricamento e l'inferenza indipendenti dalla piattaforma.
Per ulteriori informazioni sulla distribuzione, visita la documentazione di TorchServe e la guida alla distribuzione C++. Per la distribuzione mobile sul dispositivo, PyTorch ora raccomanda ExecuTorch, che utilizza una propria pipeline separata
torch.export()→.pteinvece di TorchScript.Per installare il pacchetto richiesto per esportare i modelli YOLO26, usa il seguente comando:
Installazione# Install the required package for YOLO26 pip install ultralyticsPer istruzioni dettagliate, visita la guida all'installazione di Ultralytics. Se si verificano problemi durante l'installazione, consulta la guida ai problemi comuni.
Dopo aver esportato i modelli YOLO26 nel formato TorchScript, puoi distribuirli su diverse piattaforme:
- API C++: usa LibTorch per ambienti di produzione efficienti e con overhead ridotto.
- Distribuzione su dispositivi mobili: usa ExecuTorch, il sostituto supportato da PyTorch con una pipeline di esportazione separata
.pte. - Distribuzione cloud: utilizza servizi come TorchServe per una distribuzione scalabile lato server.
Consulta le linee guida complete per distribuire i modelli in queste configurazioni e sfruttare appieno le funzionalità di TorchScript.