YOLO Vision 2026:

Esportazione del modello YOLO26 in TorchScript per una distribuzione rapida#

PyTorch sta ritirando TorchScript

PyTorch ha deprecato TorchScript e sta gradualmente rimuovendo le sue funzionalità. Per i nuovi deployment su mobile ed edge, usa la integrazione ExecuTorch supportata. Ultralytics mantiene l'esportazione regolare in TorchScript per la compatibilità con i vecchi C++.

Effettuare il deployment di modelli di computer vision in ambienti C++ senza Python richiede una rappresentazione serializzata portabile. TorchScript fornisce questa compatibilità per le vecchie applicazioni LibTorch.

Esporta in TorchScript per serializzare i tuoi modelli Ultralytics YOLO26 per la compatibilità cross-platform e un deployment ottimizzato. In questa guida ti mostreremo come esportare i tuoi modelli YOLO26 nel formato TorchScript, semplificandone l'utilizzo in una gamma più ampia di applicazioni.

Perché esportare in TorchScript?#

Panoramica del flusso di lavoro di serializzazione e deployment del modello TorchScript

Sviluppato dai creatori di PyTorch, TorchScript è uno strumento potente per ottimizzare ed eseguire il deployment di modelli PyTorch su una varietà di piattaforme. Esportare i modelli YOLO26 in TorchScript è fondamentale per passare dalla ricerca alle applicazioni reali. TorchScript, parte del framework PyTorch, aiuta a rendere questa transizione più fluida consentendo l'uso di 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 la definizione di modelli utilizzando un sottoinsieme di Python. Queste tecniche assicurano che modelli come YOLO26 possano ancora compiere la loro magia anche al di fuori del loro solito ambiente Python.

Confronto tra scripting e tracing di TorchScript

I modelli TorchScript possono anche essere ottimizzati tramite tecniche come la fusione degli operatori e i perfezionamenti nell'utilizzo della memoria, garantendo un'esecuzione efficiente. Un altro vantaggio dell'esportazione in TorchScript è il suo potenziale di accelerare l'esecuzione del modello su varie piattaforme hardware. Crea una rappresentazione autonoma e pronta per la produzione del tuo modello PyTorch che può essere integrata in ambienti C++.

Caratteristiche principali dei modelli TorchScript#

TorchScript, una parte fondamentale dell'ecosistema PyTorch, offre potenti funzionalità per ottimizzare ed eseguire il deployment di modelli di deep learning.

Panoramica delle caratteristiche principali di TorchScript

Ecco le caratteristiche principali che rendono TorchScript uno strumento prezioso per gli sviluppatori:

  • Esecuzione a grafo statico: TorchScript utilizza una rappresentazione a grafo statico del calcolo del modello, che è diversa dall'esecuzione a grafo dinamico di PyTorch. Nell'esecuzione a grafo statico, il grafo computazionale viene definito e compilato una volta sola prima dell'esecuzione effettiva, con conseguente miglioramento delle prestazioni durante l'inferenza.

  • Serializzazione del modello: TorchScript ti 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 target.

  • Conversione graduale: TorchScript fornisce un approccio di conversione graduale, consentendoti di convertire in modo incrementale parti del tuo modello PyTorch in TorchScript. Questa flessibilità è particolarmente utile quando si ha a che fare con modelli complessi o quando vuoi ottimizzare porzioni specifiche del codice.

Opzioni di distribuzione in TorchScript#

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

TorchScript offre varie opzioni di deployment per i modelli di machine learning, come ad esempio:

  • API C++: Il caso d'uso più comune per TorchScript è la sua API C++ LibTorch, che ti consente di caricare ed eseguire modelli TorchScript ottimizzati direttamente all'interno di applicazioni C++. Questo è l'ideale per gli ambienti di produzione in cui Python potrebbe non essere adatto o disponibile. L'API C++ offre un'esecuzione a basso overhead ed efficiente dei modelli TorchScript, massimizzando il potenziale delle prestazioni.

  • Deployment su Mobile: Per inferenza offline a bassa latenza e data privacy su dispositivi mobili, usa ExecuTorch, il sostituto di PyTorch per TorchScript Mobile.

  • Distribuzione cloud: I modelli TorchScript possono essere distribuiti su server basati su cloud utilizzando soluzioni come TorchServe. Fornisce funzionalità come il versionamento dei modelli, il batching e il monitoraggio delle metriche per una distribuzione scalabile in 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 tutti e sette i task di Ultralytics. La segmentazione semantica e la stima della profondità sono disponibili solo con YOLO26, l'unica famiglia che include queste teste.

CompitoYOLOv8YOLO11YOLO26
Detect
Segment
Semantic
Depth
Classify
Pose
OBB

Esporta in TorchScript: Convertire il tuo modello YOLO26#

Esportare i modelli YOLO26 in TorchScript rende più facile usarli in posti diversi e li aiuta a funzionare più velocemente e in modo più efficiente. Questo è fantastico per chiunque desideri utilizzare i modelli di deep learning in modo più efficace nelle applicazioni del mondo reale.

Installazione#

Per installare il pacchetto richiesto, esegui:

Installazione
# Install the required package for YOLO26
pip install ultralytics

Per istruzioni dettagliate e migliori pratiche relative al processo di installazione, consulta la nostra Guida all'installazione di Ultralytics. Se riscontri difficoltà durante l'installazione dei pacchetti richiesti per YOLO26, consulta la nostra Guida ai problemi comuni per soluzioni e suggerimenti.

Utilizzo#

Tutti i modelli Ultralytics YOLO26 sono progettati per supportare l'esportazione pronta all'uso, rendendo semplice integrarli nel tuo flusso di lavoro di distribuzione preferito. Puoi visualizzare 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 validarne la precisione.

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

# Load the exported TorchScript model
model = YOLO("yolo26n.torchscript")

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

ArgomentoTipoPredefinitoDescrizione
formatstr'torchscript'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.
dynamicboolFalseConsente dimensioni di input dinamiche, migliorando la flessibilità nella gestione di dimensioni variabili delle immagini.
quantizeint o strNonePrecisione di quantizzazione: 16 (FP16) richiede l'esportazione GPU con device=0; 32/non impostato è FP32. Sostituisce il flag deprecato half.
nmsboolFalseAggiunge la Non-Maximum Suppression (NMS), essenziale per un post-processing del rilevamento accurato ed efficiente.
batchint1Specifica la dimensione dell'inferenza in batch del modello esportato o il numero massimo di immagini che il modello esportato elaborerà contemporaneamente in modalità predict.
devicestrNoneSpecifica 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 di Ultralytics sull'esportazione.

Distribuire modelli YOLO26 TorchScript esportati#

Dopo aver esportato con successo i tuoi modelli Ultralytics YOLO26 nel formato TorchScript, puoi procedere al loro deployment. Il primo passo primario e consigliato per eseguire un modello TorchScript è utilizzare il metodo YOLO("model.torchscript"), come descritto nel precedente frammento di codice di utilizzo. Per istruzioni approfondite sull'esecuzione del deployment dei tuoi modelli TorchScript in altri contesti, dai un'occhiata alle seguenti risorse:

  • Esplora il deployment su mobile: Usa la pipeline separata torch.export().pte di ExecuTorch per l'attuale deployment mobile di PyTorch.

  • Impara il deployment lato server: Scopri come eseguire il deployment dei modelli lato server con TorchServe, offrendo un tutorial passo-passo per un serving dei modelli scalabile ed efficiente.

  • Implementa il deployment in C++: Tuffati nel tutorial sul caricamento di un modello TorchScript in C++, facilitando l'integrazione dei tuoi modelli TorchScript nelle applicazioni C++ per prestazioni e versatilità migliorate.

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 le prestazioni e ottenere la flessibilità necessaria per distribuirli su varie piattaforme e ambienti.

Per ulteriori dettagli sull'utilizzo, visita la documentazione ufficiale di TorchScript.

Inoltre, se desideri saperne di più su altre integrazioni di Ultralytics YOLO26, visita la nostra pagina della guida all'integrazione. Lì troverai molte risorse e approfondimenti utili.

FAQ#

  • Esportare un modello Ultralytics YOLO26 in TorchScript consente una distribuzione flessibile e multipiattaforma. TorchScript, parte dell'ecosistema PyTorch, facilita la serializzazione dei modelli, che possono poi essere eseguiti in ambienti privi di supporto per Python. Questo lo rende utile per distribuire modelli in ambienti C++.

  • Per esportare un modello YOLO26 in TorchScript, puoi utilizzare il seguente codice di esempio:

    Utilizzo
    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'
    
    # Load the exported TorchScript model
    torchscript_model = YOLO("yolo26n.torchscript")
    
    # Run inference
    results = torchscript_model("https://ultralytics.com/images/bus.jpg")

    Per maggiori dettagli sul processo di esportazione, fai riferimento alla documentazione di Ultralytics sull'esportazione.

  • Utilizzare 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 a grafo statico e la compilazione Just-In-Time (JIT), che possono ottimizzare le prestazioni del modello.
    • Integrazione cross-linguaggio: I modelli TorchScript possono essere integrati in altri linguaggi di programmazione, migliorando la flessibilità e l'espandibilità.
    • Serializzazione: I modelli possono essere serializzati, consentendo il caricamento e l'inferenza indipendenti dalla piattaforma.

    Per ulteriori approfondimenti sul deployment, visita la documentazione di TorchServe e la guida al deployment in C++. Per il deployment mobile on-device, PyTorch consiglia ora ExecuTorch, che utilizza la sua pipeline separata torch.export().pte anziché TorchScript.

  • Per installare il pacchetto richiesto per esportare i modelli YOLO26, usa il seguente comando:

    Installazione
    # Install the required package for YOLO26
    pip install ultralytics

    Per istruzioni dettagliate, visita la guida all'installazione di Ultralytics. Se sorgono problemi durante l'installazione, consulta la guida ai problemi comuni.

  • Dopo aver esportato i modelli YOLO26 nel formato TorchScript, puoi distribuirli su una varietà di piattaforme:

    • API C++: Usa LibTorch per ambienti di produzione a basso overhead e altamente efficienti.
    • Deployment su Mobile: Usa ExecuTorch, il sostituto supportato da PyTorch con una pipeline di esportazione separata .pte.
    • Deployment su Cloud: Utilizza servizi come TorchServe per un deployment scalabile lato server.

    Esplora le linee guida complete per la distribuzione dei modelli in queste impostazioni per sfruttare appieno le capacità di TorchScript.

Commenti