Meet YOLO26: next-gen vision AI.

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

La distribuzione di modelli di computer vision in diversi ambienti, inclusi sistemi embedded, browser web o piattaforme con supporto limitato a Python, richiede una soluzione flessibile e portatile. TorchScript si concentra 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, rendendo più semplice utilizzarli su una gamma più ampia di applicazioni.

Link to this sectionPerché dovresti esportare in TorchScript?#

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

Sviluppato dai creatori di PyTorch, TorchScript è uno strumento potente per ottimizzare e distribuire modelli PyTorch su una varietà di piattaforme. L'esportazione dei 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 ai modelli PyTorch di essere utilizzati in ambienti che non supportano Python.

Il processo prevede due tecniche: tracciamento (tracing) e scripting. Il tracciamento 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 tracciamento in 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 l'ottimizzazione e la distribuzione 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 del grafo statico: TorchScript utilizza una rappresentazione a grafo statico del calcolo del modello, che è diversa dall'esecuzione del grafo dinamico di PyTorch. Nell'esecuzione del grafo statico, il grafo computazionale viene definito e compilato una volta 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. Il JIT compila il grafo computazionale del modello, consentendo un'esecuzione efficiente sui dispositivi target.

  • Integrazione tra linguaggi: Con TorchScript, puoi esportare modelli PyTorch in altri linguaggi come C++, Java e JavaScript. Ciò rende più semplice integrare i 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 guardare 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 in cui Python potrebbe non essere adatto o disponibile. L'API C++ offre un basso overhead e un'esecuzione efficiente dei modelli TorchScript, massimizzando il potenziale delle prestazioni.

  • 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 nel cloud: I modelli TorchScript possono essere distribuiti su server basati su cloud utilizzando soluzioni come TorchServe. Fornisce funzionalità come il versioning del modello, il batching e il monitoraggio delle metriche per una distribuzione scalabile in ambienti di produzione. La distribuzione nel cloud con TorchScript può rendere i tuoi modelli accessibili tramite API o altri servizi web.

Link to this sectionEsporta in TorchScript: Conversione del tuo modello YOLO26#

Esportare i modelli YOLO26 in TorchScript rende più facile utilizzarli in luoghi diversi e li aiuta a funzionare più velocemente e in modo più efficiente. Questo è ottimo per chiunque desideri utilizzare i modelli di deep learning in modo più efficace nelle applicazioni reali.

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. Se durante l'installazione dei pacchetti richiesti per YOLO26 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 fin da subito, rendendo semplice integrarli nel tuo workflow di distribuzione preferito. Puoi visualizzare l'elenco completo dei formati di esportazione e delle opzioni di configurazione supportati 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.

Export
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'
Predict
from ultralytics import YOLO

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

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Validate
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 deployment.
imgszint o tuple640Desired image size for the model input. Can be an integer for square images or a tuple (height, width) for specific dimensions.
dynamicboolFalseConsente dimensioni di input dinamiche, migliorando la flessibilità nella gestione di dimensioni dell'immagine variabili.
halfboolFalseAbilita la quantizzazione FP16 (precisione dimezzata), riducendo le dimensioni del modello e potenzialmente velocizzando l'inferenza sull'hardware supportato.
optimizeboolFalseApplica l'ottimizzazione per i dispositivi mobili, riducendo potenzialmente le dimensioni del modello e migliorandone le prestazioni.
nmsboolFalseAggiunge la soppressione dei non massimi (NMS), essenziale per un post-processo di 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 sectionDistribuzione dei modelli TorchScript YOLO26 esportati#

Dopo aver esportato con successo i tuoi modelli Ultralytics YOLO26 nel formato TorchScript, ora puoi distribuirli. Il primo passo, primario 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 mobile di PyTorch fornisce linee guida complete per la distribuzione di modelli su dispositivi mobili, assicurando che le tue applicazioni siano efficienti e reattive.

  • Padronanza della distribuzione lato server: Impara come distribuire i modelli lato server con TorchServe, offrendo un tutorial passo dopo passo per un servizio di 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 desideri saperne di più su altre integrazioni di Ultralytics YOLO26, visita la nostra pagina delle guide all'integrazione. Lì troverai molte risorse e approfondimenti utili.

Link to this sectionFAQ#

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

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 poi essere eseguiti in ambienti privi di supporto Python. Questo lo rende ideale per la distribuzione di modelli su sistemi embedded, ambienti C++, applicazioni mobili e persino browser web. L'esportazione in TorchScript abilita 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?#

L'utilizzo di 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 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, 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 su dispositivi mobili, 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 l'esportazione dei 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 direttamente sul dispositivo con LibTorch (il runtime C++ di PyTorch). Per i nuovi progetti mobili, PyTorch consiglia ExecuTorch, una pipeline di esportazione .pte separata.
  • Distribuzione nel cloud: Utilizza servizi come TorchServe per una distribuzione scalabile lato server.

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

Commenti