Vai al contenuto

YOLO11 Esportazione del modello in TorchScript per una rapida distribuzione

La distribuzione di modelli di computer vision in ambienti diversi, tra cui 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 gli scenari in cui è necessario distribuire le capacità di computer vision su vari dispositivi o piattaforme.

Esportazione in Torchscript per serializzare i Ultralytics YOLO11 per una compatibilità multipiattaforma e una distribuzione semplificata. In questa guida vi mostreremo come esportare i vostri modelli YOLO11 nel formato TorchScript , rendendo più facile il loro utilizzo in una vasta gamma di applicazioni.

Perché esportare in TorchScript?

Torchscript Panoramica

Sviluppato dai creatori di PyTorch, TorchScript è un potente strumento per ottimizzare e distribuire i modelli di PyTorch su diverse piattaforme. L'esportazione dei modelli di YOLO11 in TorchScript è fondamentale per passare dalla ricerca alle applicazioni reali. TorchScript PyTorch , che fa parte del framework , aiuta a rendere più agevole questa transizione, consentendo di utilizzare i modelli PyTorch in ambienti che non supportano Python.

Il processo prevede due tecniche: il tracing e lo scripting. Il tracciamento registra le operazioni durante l'esecuzione del modello, mentre lo scripting consente di definire i modelli utilizzando un sottoinsieme di Python. Queste tecniche assicurano che i modelli come YOLO11 possano continuare a fare la loro magia anche al di fuori dell'ambiente abituale di Python .

TorchScript Script e Trace

TorchScript I modelli possono anche essere ottimizzati attraverso tecniche come la fusione degli operatori e il perfezionamento dell'uso della memoria, garantendo un'esecuzione efficiente. Un altro vantaggio dell'esportazione in TorchScript è la possibilità di accelerare l'esecuzione del modello su varie piattaforme hardware. Crea una rappresentazione autonoma e pronta per la produzione del modello PyTorch che può essere integrata in ambienti C++, sistemi embedded o distribuita in applicazioni web o mobili.

Caratteristiche principali dei modelli TorchScript

TorchScript, una parte fondamentale dell'ecosistema PyTorch , offre potenti funzioni per l'ottimizzazione e la distribuzione di modelli di deep learning.

TorchScript Caratteristiche

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

  • Esecuzione statica del grafo: TorchScript utilizza una rappresentazione statica del grafo di calcolo del modello, diversa dall'esecuzione dinamica del grafo di PyTorch. Nell'esecuzione statica del grafo, il grafo computazionale viene definito e compilato una volta prima dell'esecuzione effettiva, con conseguente miglioramento delle prestazioni 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 originale di Python , 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.

  • Integrazione tra linguaggi: Con TorchScript è possibile esportare i modelli di PyTorch in altri linguaggi come C++, Java e JavaScript. In questo modo è più facile integrare i modelli di PyTorch in sistemi software esistenti scritti in linguaggi diversi.

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

Opzioni di distribuzione in TorchScript

Prima di esaminare il codice per esportare i modelli YOLO11 nel formato TorchScript , cerchiamo di capire dove vengono normalmente utilizzati i modelli TorchScript .

TorchScript offre diverse opzioni di distribuzione per i modelli di apprendimento automatico, come ad esempio:

  • API C++: Il caso d'uso più comune di TorchScript è la sua API C++, che consente di caricare ed eseguire i modelli ottimizzati di TorchScript direttamente all'interno di applicazioni C++. Questa soluzione è ideale per gli ambienti di produzione in cui Python potrebbe non essere adatto o disponibile. L'API C++ offre un'esecuzione efficiente e a basso costo 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 delle app iOS e Android . Ciò consente di ottenere funzionalità di inferenza offline e a bassa latenza, migliorando l'esperienza dell'utente e la privacy dei dati.

  • Distribuzione nel cloud: i modelli di TorchScript possono essere distribuiti su server basati sul cloud utilizzando soluzioni come TorchServe. Fornisce funzionalità come il versioning dei modelli, il batching e il monitoraggio delle metriche per una distribuzione scalabile in ambienti di produzione. La distribuzione nel cloud con TorchScript può rendere i modelli accessibili tramite API o altri servizi web.

Esportazione in TorchScript: Conversione del modello YOLO11

L'esportazione dei modelli di YOLO11 in TorchScript ne facilita l'utilizzo in luoghi diversi e ne favorisce l'esecuzione in modo più rapido ed efficiente. È un'ottima soluzione per tutti coloro che vogliono utilizzare i modelli di deep learning in modo più efficace nelle applicazioni del mondo reale.

Installazione

Per installare il pacchetto richiesto, eseguire:

Installazione

# Install the required package for YOLO11
pip install ultralytics

Per istruzioni dettagliate e buone pratiche relative al processo di installazione, consultare la nostra Guida all'installazione diUltralytics . Durante l'installazione dei pacchetti necessari per YOLO11, se si incontrano difficoltà, consultare la nostra guida ai problemi comuni per trovare soluzioni e suggerimenti.

Utilizzo

Prima di immergersi nelle istruzioni d'uso, è importante notare che tutti i modelli diUltralytics YOLO11 sono disponibili per l'esportazione, ma è possibile assicurarsi che il modello selezionato supporti la funzionalità di esportazione qui.

Utilizzo

from ultralytics import YOLO

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to TorchScript format
model.export(format="torchscript")  # creates 'yolo11n.torchscript'

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

# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TorchScript format
yolo export model=yolo11n.pt format=torchscript  # creates 'yolo11n.torchscript'

# Run inference with the exported model
yolo predict model=yolo11n.torchscript source='https://ultralytics.com/images/bus.jpg'

Per maggiori dettagli sul processo di esportazione, visitare la pagina di documentazioneUltralytics sull'esportazione.

Distribuzione dei modelli esportati di YOLO11 TorchScript

Dopo aver esportato con successo i modelli Ultralytics YOLO11 nel formato TorchScript , è possibile distribuirli. Il primo passo principale e consigliato per eseguire un modello TorchScript è utilizzare il metodo YOLO("model.torchscript"), come indicato nel precedente frammento di codice. Tuttavia, per istruzioni approfondite su come distribuire i modelli TorchScript in varie altre impostazioni, consultare le seguenti risorse:

  • Esplorare la distribuzione mobile: La documentazione PyTorch La Documentazione Mobile fornisce linee guida complete per la distribuzione dei modelli sui dispositivi mobili, assicurando che le applicazioni siano efficienti e reattive.

  • Distribuzione master lato server: Imparate a distribuire i modelli lato server con TorchServe, offrendo un tutorial passo-passo per un servizio di modelli scalabile ed efficiente.

  • Implementare la distribuzione del C++: Immergetevi nell'esercitazione sul caricamento di un modello TorchScript in C++, che facilita l'integrazione dei modelli TorchScript nelle applicazioni C++ per migliorare le prestazioni e la versatilità.

Sintesi

In questa guida abbiamo esplorato il processo di esportazione dei modelli Ultralytics YOLO11 nel formato TorchScript . Seguendo le istruzioni fornite, è possibile ottimizzare i modelli YOLO11 per le prestazioni e ottenere la flessibilità necessaria per distribuirli su varie piattaforme e ambienti.

Per ulteriori dettagli sull'uso, visitate la documentazione ufficiale diTorchScript.

Inoltre, se desiderate saperne di più su altre integrazioni di Ultralytics YOLO11 , visitate la nostra pagina della guida alle integrazioni. Troverete molte risorse e approfondimenti utili.

FAQ

Che cos'è Ultralytics YOLO11 modello di esportazione in TorchScript?

L'esportazione di un modello Ultralytics YOLO11 in TorchScript consente una distribuzione flessibile e multipiattaforma. TorchScript PyTorch , parte dell'ecosistema , facilita la serializzazione dei modelli, che possono quindi essere eseguiti in ambienti che non supportano Python . Ciò lo rende ideale per la distribuzione di modelli su sistemi embedded, ambienti C++, applicazioni mobili e persino browser web. L'esportazione in TorchScript consente prestazioni efficienti e una più ampia applicabilità dei modelli YOLO11 su diverse piattaforme.

Come posso esportare il mio modello YOLO11 in TorchScript utilizzando Ultralytics?

Per esportare un modello YOLO11 in TorchScript, si può usare il seguente esempio di codice:

Utilizzo

from ultralytics import YOLO

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to TorchScript format
model.export(format="torchscript")  # creates 'yolo11n.torchscript'

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

# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TorchScript format
yolo export model=yolo11n.pt format=torchscript  # creates 'yolo11n.torchscript'

# Run inference with the exported model
yolo predict model=yolo11n.torchscript source='https://ultralytics.com/images/bus.jpg'

Per maggiori dettagli sul processo di esportazione, consultare la documentazione diUltralytics sull'esportazione.

Perché dovrei usare TorchScript per distribuire i modelli di YOLO11 ?

L'utilizzo di TorchScript per la distribuzione dei modelli di YOLO11 offre diversi vantaggi:

  • Portabilità: I modelli esportati possono essere eseguiti in ambienti che non richiedono Python, come applicazioni C++, sistemi embedded o dispositivi mobili.
  • Ottimizzazione: TorchScript supporta l'esecuzione statica dei grafi e la compilazione Just-In-Time (JIT), che possono ottimizzare le prestazioni dei modelli.
  • Integrazione cross-lingua: i modelli di 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 informazioni sulla distribuzione, visitate la Documentazione diPyTorch Mobile, la Documentazione di TorchServe e la Guida alla distribuzione di C++.

Quali sono i passaggi di installazione per esportare i modelli di YOLO11 in TorchScript?

Per installare il pacchetto necessario per l'esportazione dei modelli YOLO11 , utilizzare il seguente comando:

Installazione

# Install the required package for YOLO11
pip install ultralytics

Per istruzioni dettagliate, consultare la guida all'installazione diUltralytics . In caso di problemi durante l'installazione, consultare la guida Problemi comuni.

Come si distribuiscono i modelli esportati di TorchScript YOLO11 ?

Dopo aver esportato i modelli YOLO11 nel formato TorchScript , è possibile distribuirli su diverse piattaforme:

  • API C++: Ideale per ambienti di produzione a basso costo e ad alta efficienza.
  • Distribuzione mobile: Utilizzare PyTorch Mobile per le applicazioni iOS e Android .
  • Distribuzione nel cloud: Utilizzate servizi come TorchServe per una distribuzione scalabile sul lato server.

Esplorate le linee guida complete per l'implementazione dei modelli in questi contesti per sfruttare appieno le capacità di TorchScript.

📅C reato 8 mesi fa ✏️ Aggiornato 1 mese fa

Commenti