Vai al contenuto

YOLO11 Model Export to TorchScript for Quick Deployment

Deploying computer vision models across different environments, including embedded systems, web browsers, or platforms with limited Python support, requires a flexible and portable solution. TorchScript focuses on portability and the ability to run models in environments where the entire Python framework is unavailable. This makes it ideal for scenarios where you need to deploy your computer vision capabilities across various devices or platforms.

Export to Torchscript to serialize your Ultralytics YOLO11 models for cross-platform compatibility and streamlined deployment. In this guide, we'll show you how to export your YOLO11 models to the TorchScript format, making it easier for you to use them across a wider range of applications.

Perché dovresti esportare su TorchScript?

Torchscript Panoramica

Developed by the creators of PyTorch, TorchScript is a powerful tool for optimizing and deploying PyTorch models across a variety of platforms. Exporting YOLO11 models to TorchScript is crucial for moving from research to real-world applications. TorchScript, part of the PyTorch framework, helps make this transition smoother by allowing PyTorch models to be used in environments that don't support Python.

The process involves two techniques: tracing and scripting. Tracing records operations during model execution, while scripting allows for the definition of models using a subset of Python. These techniques ensure that models like YOLO11 can still work their magic even outside their usual Python environment.

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 diverse 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, a key part of the PyTorch ecosystem, provides powerful features for optimizing and deploying deep learning models.

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, che è 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 vera e propria, migliorando le prestazioni durante l'inferenza.

  • Serializzazione dei modelli: TorchScript ti permette 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 grafico computazionale del modello, consentendo un'esecuzione efficiente sui dispositivi di destinazione.

  • Integrazione tra linguaggi: Con TorchScript, puoi 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 ti permette di convertire in modo incrementale parti del tuo modello PyTorch in TorchScript. Questa flessibilità è particolarmente utile quando si tratta di modelli complessi o quando si desidera ottimizzare parti specifiche del codice.

Opzioni di distribuzione in TorchScript

Before we look at the code for exporting YOLO11 models to the TorchScript format, let's understand where TorchScript models are normally used.

TorchScript offers various deployment options for machine learning models, such as:

  • 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 di TorchScript , massimizzando il potenziale delle prestazioni.

  • Mobile Deployment: TorchScript offers tools for converting models into formats readily deployable on mobile devices. PyTorch Mobile provides a runtime for executing these models within iOS and Android apps. This enables low-latency, offline inference capabilities, enhancing user experience and data privacy.

  • 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 un deployment scalabile in ambienti di produzione. La distribuzione nel cloud con TorchScript può rendere i tuoi modelli accessibili tramite API o altri servizi web.

Export to TorchScript: Converting Your YOLO11 Model

Exporting YOLO11 models to TorchScript makes it easier to use them in different places and helps them run faster and more efficiently. This is great for anyone looking to use deep learning models more effectively in real-world applications.

Installazione

Per installare il pacchetto richiesto, esegui:

Installazione

# Install the required package for YOLO11
pip install ultralytics

For detailed instructions and best practices related to the installation process, check our Ultralytics Installation guide. While installing the required packages for YOLO11, if you encounter any difficulties, consult our Common Issues guide for solutions and tips.

Utilizzo

Before diving into the usage instructions, it's important to note that while all Ultralytics YOLO11 models are available for exporting, you can ensure that the model you select supports export functionality here.

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, visita la pagina di documentazione diUltralytics sull'esportazione.

Deploying Exported YOLO11 TorchScript Models

After successfully exporting your Ultralytics YOLO11 models to TorchScript format, you can now deploy them. The primary and recommended first step for running a TorchScript model is to utilize the YOLO("model.torchscript") method, as outlined in the previous usage code snippet. However, for in-depth instructions on deploying your TorchScript models in various other settings, take a look at the following resources:

  • Explore Mobile Deployment: The PyTorch Mobile Documentation provides comprehensive guidelines for deploying models on mobile devices, ensuring your applications are efficient and responsive.

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

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

Sommario

In this guide, we explored the process of exporting Ultralytics YOLO11 models to the TorchScript format. By following the provided instructions, you can optimize YOLO11 models for performance and gain the flexibility to deploy them across various platforms and environments.

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

Also, if you'd like to know more about other Ultralytics YOLO11 integrations, visit our integration guide page. You'll find plenty of useful resources and insights there.

DOMANDE FREQUENTI

What is Ultralytics YOLO11 model export to TorchScript?

Exporting an Ultralytics YOLO11 model to TorchScript allows for flexible, cross-platform deployment. TorchScript, a part of the PyTorch ecosystem, facilitates the serialization of models, which can then be executed in environments that lack Python support. This makes it ideal for deploying models on embedded systems, C++ environments, mobile applications, and even web browsers. Exporting to TorchScript enables efficient performance and wider applicability of your YOLO11 models across diverse platforms.

How can I export my YOLO11 model to TorchScript using Ultralytics?

To export a YOLO11 model to TorchScript, you can use the following example code:

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, consulta la documentazione diUltralytics sull'esportazione.

Why should I use TorchScript for deploying YOLO11 models?

Using TorchScript for deploying YOLO11 models offers several advantages:

  • Portabilità: I modelli esportati possono essere eseguiti in ambienti che non necessitano di 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, visita la Documentazione diPyTorch Mobile, la Documentazione di TorchServe e la Guida alla distribuzione di C++.

What are the installation steps for exporting YOLO11 models to TorchScript?

To install the required package for exporting YOLO11 models, use the following command:

Installazione

# Install the required package for YOLO11
pip install ultralytics

Per istruzioni dettagliate, visita la guida all'installazione diUltralytics . In caso di problemi durante l'installazione, consulta la guida ai problemi comuni.

How do I deploy my exported TorchScript YOLO11 models?

After exporting YOLO11 models to the TorchScript format, you can deploy them across a variety of platforms:

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

Esplora le linee guida complete per l'implementazione dei modelli in questi contesti per sfruttare al meglio le capacità di TorchScript.

📅 Created 8 months ago ✏️ Updated 1 month ago

Commenti