Salta para o conteúdo

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.

Por que razão deves exportar para TorchScript?

Torchscript Visão geral

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 rastreio

TorchScript Os modelos também podem ser optimizados através de técnicas como a fusão de operadores e refinamentos na utilização da memória, garantindo uma execução eficiente. Outra vantagem da exportação para TorchScript é o seu potencial para acelerar a execução do modelo em várias plataformas de hardware. Cria uma representação autônoma e pronta para produção do seu modelo PyTorch que pode ser integrada em ambientes C++, sistemas incorporados ou implantada em aplicativos da Web ou móveis.

Principais características dos modelos TorchScript

TorchScript, a key part of the PyTorch ecosystem, provides powerful features for optimizing and deploying deep learning models.

TorchScript Características

Eis as principais características que tornam o TorchScript uma ferramenta valiosa para os programadores:

  • Execução gráfica estática: TorchScript utiliza uma representação gráfica estática da computação do modelo, o que é diferente da execução gráfica dinâmica de PyTorch. Na execução de gráficos estáticos, o gráfico computacional é definido e compilado uma vez antes da execução efectiva, o que resulta num melhor desempenho durante a inferência.

  • Serialização de modelos: TorchScript permite serializar modelos PyTorch em um formato independente de plataforma. Os modelos serializados podem ser carregados sem a necessidade do código Python original, permitindo a implantação em diferentes ambientes de tempo de execução.

  • Compilação JIT: TorchScript usa a compilação Just-In-Time (JIT) para converter os modelos PyTorch em uma representação intermediária otimizada. O JIT compila o gráfico computacional do modelo, permitindo uma execução eficiente nos dispositivos alvo.

  • Integração entre linguagens: Com TorchScript, é possível exportar modelos PyTorch para outras linguagens, como C++, Java e JavaScript. Isto facilita a integração de modelos PyTorch em sistemas de software existentes escritos em diferentes linguagens.

  • Conversão gradual: TorchScript fornece uma abordagem de conversão gradual, permitindo-lhe converter incrementalmente partes do seu modelo PyTorch para TorchScript. Esta flexibilidade é particularmente útil quando se lida com modelos complexos ou quando se pretende otimizar partes específicas do código.

Opções de implantação em 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++: O caso de utilização mais comum do TorchScript é a sua API C++, que permite carregar e executar modelos TorchScript optimizados diretamente em aplicações C++. Isso é ideal para ambientes de produção em que Python pode não ser adequado ou estar disponível. A API C++ oferece execução eficiente e de baixo custo dos modelos TorchScript , maximizando o potencial de desempenho.

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

  • Implantação na nuvem: os modelos TorchScript podem ser implantados em servidores baseados na nuvem usando soluções como o TorchServe. Fornece recursos como versionamento de modelos, lotes e monitoramento de métricas para implantação escalonável em ambientes de produção. A implantação na nuvem com TorchScript pode tornar seus modelos acessíveis por meio de APIs ou outros serviços da 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.

Instalação

Para instalar o pacote necessário, executa:

Instalação

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

Utilização

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.

Utilização

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'

Para obter mais detalhes sobre o processo de exportação, visita a página de documentaçãoUltralytics sobre exportação.

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.

  • Implantação mestre do lado do servidor: Aprende a implementar modelos do lado do servidor com o TorchServe, que oferece um tutorial passo-a-passo para um serviço de modelos escalável e eficiente.

  • Implementar a implantação do C++: Mergulha no Tutorial sobre o carregamento de um modelo TorchScript em C++, facilitando a integração dos teus modelos TorchScript em aplicações C++ para um melhor desempenho e versatilidade.

Resumo

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.

Para mais informações sobre a utilização, visita a documentação oficial doTorchScript.

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.

FAQ

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:

Utilização

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'

Para mais detalhes sobre o processo de exportação, consulta a documentaçãoUltralytics sobre exportação.

Why should I use TorchScript for deploying YOLO11 models?

Using TorchScript for deploying YOLO11 models offers several advantages:

  • Portabilidade: Os modelos exportados podem ser executados em ambientes sem a necessidade de Python, tais como aplicações C++, sistemas incorporados ou dispositivos móveis.
  • Otimização: TorchScript suporta a execução de gráficos estáticos e a compilação Just-In-Time (JIT), o que pode otimizar o desempenho do modelo.
  • Integração entre linguagens: os modelos TorchScript podem ser integrados noutras linguagens de programação, aumentando a flexibilidade e a capacidade de expansão.
  • Serialização: Os modelos podem ser serializados, permitindo o carregamento e a inferência independentes da plataforma.

Para obter mais informações sobre a implantação, visita a Documentação doPyTorch Mobile, a Documentação do TorchServe e o Guia de implantação do 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:

Instalação

# Install the required package for YOLO11
pip install ultralytics

Para obter instruções detalhadas, visita o guia de instalaçãoUltralytics . Se surgirem problemas durante a instalação, consulta o guia de problemas comuns.

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++: Ideal para ambientes de produção de baixo custo e altamente eficientes.
  • Implantação móvel: Utiliza o PyTorch Mobile para as aplicações iOS e Android .
  • Implantação na nuvem: Utiliza serviços como o TorchServe para uma implementação escalável do lado do servidor.

Explora orientações abrangentes para a implementação de modelos nestes contextos para tirar o máximo partido das capacidades do TorchScript.

📅 Created 7 months ago ✏️ Updated 22 days ago

Comentários