Meet YOLO26: next-gen vision AI.

Link to this sectionEsportazione del modello YOLO26 in TorchScript per una distribuzione rapida#

Distribuire modelli di computer vision in diversi ambienti, inclusi sistemi embedded, browser web o piattaforme con supporto Python limitato, richiede una soluzione flessibile e portatile. TorchScript punta sulla portabilità e sulla capacità di eseguire modelli in ambienti in cui l'intero framework Python non è disponibile. Questo lo rende ideale per scenari in cui devi distribuire le tue funzionalità di computer vision su vari dispositivi o piattaforme.

Esporta in TorchScript per serializzare i tuoi modelli Ultralytics YOLO26 per la compatibilità multipiattaforma e una distribuzione semplificata. In questa guida, ti mostreremo come esportare i tuoi modelli YOLO26 nel formato TorchScript, facilitandoti l'utilizzo in una gamma più ampia di applicazioni.

Link to this sectionPerché esportare in TorchScript?#

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

Sviluppato dai creatori di PyTorch, TorchScript è un potente strumento per ottimizzare e distribuire 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 dei 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 attraverso tecniche come la fusione degli operatori e 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++, sistemi embedded o distribuita in applicazioni web o mobili.

Link to this sectionCaratteristiche principali dei modelli TorchScript#

TorchScript, una parte fondamentale dell'ecosistema PyTorch, fornisce potenti funzionalità per ottimizzare e distribuire 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.

  • Integrazione cross-linguaggio: Con TorchScript, puoi esportare modelli PyTorch in altri linguaggi come C++, Java e JavaScript. Ciò facilita l'integrazione dei modelli PyTorch in sistemi software esistenti scritti in linguaggi diversi.

  • 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.

Link to this sectionOpzioni 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 distribuzione per modelli di machine learning, come:

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

  • Distribuzione mobile: TorchScript offre strumenti per convertire i modelli in formati facilmente distribuibili su dispositivi mobili. PyTorch Mobile fornisce un runtime per l'esecuzione di questi modelli all'interno di app iOS e Android. Ciò abilita funzionalità di inferenza offline a bassa latenza, migliorando l'esperienza utente e la privacy dei dati.

  • 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.

Link to this sectionEsporta 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.

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 di Ultralytics. 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#

Tutti i modelli Ultralytics YOLO26 sono progettati per supportare l'esportazione nativamente, rendendo semplice integrarli nel tuo flusso di lavoro di distribuzione preferito. Puoi visualizzare l'elenco completo dei formati di esportazione supportati e le 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.

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

Link to this sectionArgomenti 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 su GPU con device=0; 32/non impostato è FP32. Sostituisce il flag deprecato half.
optimizeboolFalseApplica l'ottimizzazione per i dispositivi mobili, riducendo potenzialmente le dimensioni del modello e migliorandone le prestazioni.
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.
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.

Link to this sectionDistribuire modelli YOLO26 TorchScript esportati#

Dopo aver esportato con successo i tuoi modelli Ultralytics YOLO26 nel formato TorchScript, ora puoi distribuirli. Il primo passaggio principale e consigliato per eseguire un modello TorchScript è utilizzare il metodo YOLO("model.torchscript"), come descritto nel frammento di codice di utilizzo precedente. Per istruzioni approfondite sulla distribuzione dei tuoi modelli TorchScript in altre impostazioni, dai un'occhiata alle seguenti risorse:

  • Esplora la distribuzione mobile: La documentazione di PyTorch Mobile fornisce linee guida complete per la distribuzione di modelli su dispositivi mobili, assicurando che le tue applicazioni siano efficienti e reattive.

  • Padroneggia la distribuzione lato server: Impara come distribuire i modelli lato server con TorchServe, offrendo un tutorial passo dopo passo per un serving dei modelli scalabile ed efficiente.

  • Implementa la distribuzione C++: Immergiti nel tutorial sul caricamento di un modello TorchScript in C++, facilitando l'integrazione dei tuoi modelli TorchScript in 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 vuoi saperne di più su altre integrazioni di Ultralytics YOLO26, visita la nostra pagina della guida all'integrazione. Troverai molte risorse utili e approfondimenti lì.

Link to this sectionFAQ#

Link to this sectionCos'è l'esportazione del modello Ultralytics YOLO26 in TorchScript?#

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 che non dispongono del supporto Python. Questo lo rende ideale per la distribuzione di modelli su sistemi embedded, ambienti C++, applicazioni mobili e persino browser web. Esportare in TorchScript consente prestazioni efficienti e una maggiore applicabilità dei tuoi modelli YOLO26 su diverse piattaforme.

Link to this sectionCome posso esportare il mio modello YOLO26 in TorchScript usando Ultralytics?#

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 ulteriori dettagli sul processo di esportazione, consulta la documentazione di Ultralytics sull'esportazione.

Link to this sectionPerché dovrei usare TorchScript per distribuire i modelli YOLO26?#

Utilizzare TorchScript per distribuire i modelli YOLO26 offre diversi vantaggi:

  • Portabilità: I modelli esportati possono essere eseguiti in ambienti senza la necessità di Python, come applicazioni C++, sistemi embedded o dispositivi mobili.
  • 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 sulla distribuzione, visita la documentazione di TorchServe e la Guida alla distribuzione C++. Per la distribuzione mobile su dispositivo, PyTorch ora consiglia ExecuTorch, che utilizza la propria pipeline separata torch.export().pte anziché TorchScript.

Link to this sectionQuali sono i passaggi di installazione per esportare i modelli YOLO26 in 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 dovessero sorgere problemi durante l'installazione, consulta la guida ai problemi comuni.

Link to this sectionCome distribuisco i miei modelli TorchScript YOLO26 esportati?#

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

  • API C++: Ideale per ambienti di produzione a basso overhead e altamente efficienti.
  • Distribuzione mobile: Esegui i modelli TorchScript sul dispositivo con LibTorch (il runtime C++ di PyTorch). Per nuovi progetti mobili, PyTorch consiglia ExecuTorch, una pipeline di esportazione .pte separata.
  • Distribuzione cloud: Utilizza servizi come TorchServe per una distribuzione scalabile lato server.

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

Commenti