Exportação do Modelo YOLO11 para TorchScript para Implementação Rápida
A implementação de modelos de visão computacional em diferentes ambientes, incluindo sistemas embarcados, navegadores da web ou plataformas com suporte limitado a python, requer uma solução flexível e portátil. O TorchScript se concentra na portabilidade e na capacidade de executar modelos em ambientes onde toda a estrutura python não está disponível. Isso o torna ideal para cenários em que você precisa implementar seus recursos de visão computacional em vários dispositivos ou plataformas.
Exporte para Torchscript para serializar seus modelos Ultralytics YOLO11 para compatibilidade entre plataformas e implantação simplificada. Neste guia, mostraremos como exportar seus modelos YOLO11 para o formato TorchScript, facilitando o uso em uma gama mais ampla de aplicações.
Por que você deve exportar para TorchScript?
Desenvolvido pelos criadores do PyTorch, o TorchScript é uma ferramenta poderosa para otimizar e implantar modelos PyTorch em uma variedade de plataformas. Exportar modelos YOLO11 para TorchScript é crucial para passar da pesquisa para aplicações no mundo real. O TorchScript, parte da estrutura PyTorch, ajuda a tornar essa transição mais suave, permitindo que os modelos PyTorch sejam usados em ambientes que não suportam python.
O processo envolve duas técnicas: tracing e scripting. Tracing registra operações durante a execução do modelo, enquanto scripting permite a definição de modelos usando um subconjunto de Python. Essas técnicas garantem que modelos como o YOLO11 ainda possam fazer sua mágica mesmo fora de seu ambiente Python usual.
Os modelos TorchScript também podem ser otimizados através de técnicas como a fusão de operadores e refinamentos no uso de memória, garantindo uma execução eficiente. Outra vantagem de exportar para TorchScript é o seu potencial para acelerar a execução do modelo em várias plataformas de hardware. Ele cria uma representação autónoma e pronta para produção do seu modelo PyTorch que pode ser integrada em ambientes C++, sistemas embarcados ou implementada em aplicações web ou móveis.
Principais Características dos Modelos TorchScript
TorchScript, uma parte fundamental do ecossistema PyTorch, oferece recursos poderosos para otimizar e implementar modelos de aprendizado profundo.
Aqui estão os principais recursos que tornam o TorchScript uma ferramenta valiosa para desenvolvedores:
-
Execução de Gráfico Estático: TorchScript usa uma representação de gráfico estático da computação do modelo, que é diferente da execução de gráfico dinâmico do PyTorch. Na execução de gráfico estático, o gráfico computacional é definido e compilado uma vez antes da execução real, resultando em melhor desempenho durante a inferência.
-
Serialização de Modelo: O TorchScript permite que você serialize modelos PyTorch em um formato independente de plataforma. Modelos serializados podem ser carregados sem exigir o 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 modelos PyTorch em uma representação intermediária otimizada. O JIT compila o gráfico computacional do modelo, permitindo a execução eficiente em dispositivos de destino.
-
Integração entre Linguagens: Com o TorchScript, pode 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 que você converta incrementalmente partes do seu modelo PyTorch em TorchScript. Essa flexibilidade é particularmente útil ao lidar com modelos complexos ou quando você deseja otimizar porções específicas do código.
Opções de Implementação em TorchScript
Antes de analisarmos o código para exportar modelos YOLO11 para o formato TorchScript, vamos entender onde os modelos TorchScript são normalmente usados.
O TorchScript oferece várias opções de implementação para modelos de aprendizagem automática, tais como:
-
API C++: O caso de uso mais comum para TorchScript é sua API C++, que permite carregar e executar modelos TorchScript otimizados diretamente em aplicações C++. Isso é ideal para ambientes de produção onde python pode não ser adequado ou disponível. A API C++ oferece baixo overhead e execução eficiente de modelos TorchScript, maximizando o potencial de desempenho.
-
Implementação Móvel: O TorchScript oferece ferramentas para converter modelos em formatos facilmente implementáveis em dispositivos móveis. O PyTorch Mobile fornece um runtime para executar estes modelos dentro de aplicações iOS e Android. Isto permite capacidades de inferência offline e de baixa latência, melhorando a experiência do utilizador e a privacidade de dados.
-
Implantação na Nuvem: Os modelos TorchScript podem ser implantados em servidores baseados em nuvem usando soluções como o TorchServe. Ele fornece recursos como versionamento de modelo, loteamento e monitoramento de métricas para implantação escalá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.
Exportar para TorchScript: Convertendo Seu Modelo YOLO11
Exportar modelos YOLO11 para TorchScript torna mais fácil usá-los em diferentes lugares e ajuda-os a serem executados de forma mais rápida e eficiente. Isso é ótimo para quem procura usar modelos de deep learning de forma mais eficaz em aplicações do mundo real.
Instalação
Para instalar o pacote necessário, execute:
Instalação
# Install the required package for YOLO11
pip install ultralytics
Para obter instruções detalhadas e melhores práticas relacionadas ao processo de instalação, consulte nosso guia de instalação do Ultralytics. Ao instalar os pacotes necessários para o YOLO11, se você encontrar alguma dificuldade, consulte nosso guia de problemas comuns para obter soluções e dicas.
Utilização
Todos os modelos Ultralytics YOLO11 são projetados para suportar a exportação, facilitando a integração em seu fluxo de trabalho de implantação preferido. Você pode visualizar a lista completa de formatos de exportação e opções de configuração suportados para escolher a melhor configuração para sua aplicação.
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'
Argumentos de Exportação
Argumento | Tipo | Padrão | Descrição |
---|---|---|---|
format |
str |
'torchscript' |
Formato de destino para o modelo exportado, definindo a compatibilidade com vários ambientes de implementação. |
imgsz |
int ou tuple |
640 |
Tamanho de imagem desejado para a entrada do modelo. Pode ser um inteiro para imagens quadradas ou uma tupla (height, width) para dimensões específicas. |
optimize |
bool |
False |
Aplica otimização para dispositivos móveis, potencialmente reduzindo o tamanho do modelo e melhorando o desempenho. |
nms |
bool |
False |
Adiciona a Supressão Não Máxima (NMS), essencial para um pós-processamento de detecção preciso e eficiente. |
batch |
int |
1 |
Especifica o tamanho do lote de inferência do modelo de exportação ou o número máximo de imagens que o modelo exportado processará simultaneamente em predict modo. |
device |
str |
None |
Especifica o dispositivo para exportação: GPU (device=0 CPU (device=cpu ), MPS para Apple silicon (device=mps ). |
Para mais detalhes sobre o processo de exportação, visite a página de documentação da Ultralytics sobre exportação.
Implantação de Modelos TorchScript YOLO11 Exportados
Após exportar com sucesso seus modelos Ultralytics YOLO11 para o formato TorchScript, você já pode implementá-los. O primeiro passo principal e recomendado para executar um modelo TorchScript é utilizar o método YOLO("model.torchscript"), conforme descrito no trecho de código de uso anterior. No entanto, para obter instruções detalhadas sobre como implementar seus modelos TorchScript em várias outras configurações, consulte os seguintes recursos:
-
Explorar a Implementação Móvel: A Documentação Móvel do PyTorch fornece diretrizes abrangentes para implementar modelos em dispositivos móveis, garantindo que as suas aplicações sejam eficientes e responsivas.
-
Domine a Implantação do Lado do Servidor: Aprenda como implantar modelos no lado do servidor com o TorchServe, oferecendo um tutorial passo a passo para um serviço de modelo escalável e eficiente.
-
Implementar a Implantação em C++: Explore o Tutorial sobre como Carregar um Modelo TorchScript em C++, facilitando a integração de seus modelos TorchScript em aplicações C++ para desempenho e versatilidade aprimorados.
Resumo
Neste guia, exploramos o processo de exportação de modelos Ultralytics YOLO11 para o formato TorchScript. Seguindo as instruções fornecidas, você pode otimizar os modelos YOLO11 para obter desempenho e ganhar a flexibilidade de implantá-los em várias plataformas e ambientes.
Para obter mais detalhes sobre o uso, visite a documentação oficial do TorchScript.
Além disso, se você quiser saber mais sobre outras integrações do Ultralytics YOLO11, visite nossa página do guia de integração. Você encontrará muitos recursos e insights úteis lá.
FAQ
O que é a exportação do modelo Ultralytics YOLO11 para TorchScript?
A exportação de um modelo Ultralytics YOLO11 para TorchScript permite uma implantação flexível e entre plataformas. O TorchScript, uma parte do ecossistema PyTorch, facilita a serialização de modelos, que podem ser executados em ambientes que não têm suporte para Python. Isso o torna ideal para implantar modelos em sistemas embarcados, ambientes C++, aplicações móveis e até navegadores da web. A exportação para TorchScript permite um desempenho eficiente e uma aplicabilidade mais ampla de seus modelos YOLO11 em diversas plataformas.
Como posso exportar meu modelo YOLO11 para TorchScript usando Ultralytics?
Para exportar um modelo YOLO11 para TorchScript, você pode usar o seguinte código de exemplo:
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, consulte a documentação da Ultralytics sobre exportação.
Por que devo usar o TorchScript para implantar modelos YOLO11?
Usar TorchScript para implementar modelos YOLO11 oferece diversas vantagens:
- Portabilidade: Os modelos exportados podem ser executados em ambientes sem a necessidade de python, como aplicações C++, sistemas embarcados ou dispositivos móveis.
- Otimização: O TorchScript oferece suporte à execução de grafo estático e à 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, visite a Documentação do PyTorch Mobile, a Documentação do TorchServe e o Guia de Implantação em C++.
Quais são as etapas de instalação para exportar modelos YOLO11 para TorchScript?
Para instalar o pacote necessário para exportar modelos YOLO11, use o seguinte comando:
Instalação
# Install the required package for YOLO11
pip install ultralytics
Para instruções detalhadas, visite o guia de instalação da Ultralytics. Se surgir algum problema durante a instalação, consulte o guia de problemas comuns.
Como implemento meus modelos TorchScript YOLO11 exportados?
Após exportar modelos YOLO11 para o formato TorchScript, você pode implementá-los em diversas plataformas:
- API C++: Ideal para ambientes de produção de baixo overhead e altamente eficientes.
- Implementação Móvel: Utilize o PyTorch Mobile para aplicações iOS e Android.
- Implantação na Nuvem: Utilize serviços como o TorchServe para implantação escalável do lado do servidor.
Explore as diretrizes abrangentes para implantar modelos nessas configurações para aproveitar ao máximo os recursos do TorchScript.