Salta para o conteúdo

YOLOv8 Exportação de modelos para TorchScript para uma implementação rápida

A implantação de modelos de visão computacional em diferentes ambientes, incluindo sistemas incorporados, navegadores da Web ou plataformas com suporte limitado ao 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 do Python não está disponível. Isto torna-o ideal para cenários em que é necessário implementar as capacidades de visão computacional em vários dispositivos ou plataformas.

Exporta para Torchscript para serializar seus Ultralytics YOLOv8 para obter compatibilidade entre plataformas e implantação simplificada. Neste guia, vamos mostrar-te como exportar os teus modelos YOLOv8 para o formato TorchScript , facilitando a sua utilização numa vasta gama de aplicações.

Por que razão deves exportar para TorchScript?

Torchscript Visão geral

Desenvolvido pelos criadores de PyTorch, TorchScript é uma ferramenta poderosa para otimizar e implementar modelos PyTorch numa variedade de plataformas. A exportação de modelos YOLOv8 para TorchScript é crucial para passar da investigação para aplicações do mundo real. TorchScript O PyTorch , parte da estrutura , 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: rastreio e elaboração de scripts. O rastreio regista as operações durante a execução do modelo, enquanto o scripting permite a definição de modelos utilizando um subconjunto de Python. Estas técnicas garantem que modelos como YOLOv8 podem continuar a fazer a sua magia mesmo fora do seu ambiente Python habitual.

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

TorchScriptuma parte essencial do ecossistema PyTorch , fornece funcionalidades poderosas para otimizar e implementar modelos de aprendizagem profunda.

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

Antes de analisarmos o código para exportar os modelos YOLOv8 para o formato TorchScript , vamos compreender onde os modelos TorchScript são normalmente utilizados.

TorchScript oferece várias opções de implementação para modelos de aprendizagem automática, tais como:

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

  • Implementação móvel: TorchScript oferece ferramentas para converter modelos em formatos facilmente implementáveis em dispositivos móveis. PyTorch O Mobile fornece um tempo de execução para executar estes modelos em 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 dos dados.

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

Exportar para TorchScript: Converter o teu modelo YOLOv8

Exportar modelos YOLOv8 para TorchScript facilita a sua utilização em diferentes locais e ajuda a executá-los de forma mais rápida e eficiente. Isto é ótimo para quem procura utilizar modelos de aprendizagem profunda de forma mais eficaz em aplicações do mundo real.

Instalação

Para instalar o pacote necessário, executa:

Instalação

# Install the required package for YOLOv8
pip install ultralytics

Para obter instruções detalhadas e melhores práticas relacionadas com o processo de instalação, consulta o nosso guia de instalaçãoUltralytics . Durante a instalação dos pacotes necessários para YOLOv8, se tiveres alguma dificuldade, consulta o nosso guia de Problemas comuns para obteres soluções e sugestões.

Utilização

Antes de seguir as instruções de utilização, é importante notar que, embora todos os modelosUltralytics YOLOv8 estejam disponíveis para exportação, podes garantir que o modelo que seleccionaste suporta a funcionalidade de exportação aqui.

Utilização

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO('yolov8n.pt')

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

# Load the exported TorchScript model
torchscript_model = YOLO('yolov8n.torchscript')

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

# Run inference with the exported model
yolo predict model=yolov8n.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.

Implantação de modelos exportados YOLOv8 TorchScript

Depois de exportar com êxito os modelos Ultralytics YOLOv8 para o formato TorchScript , agora é possível implantá-los. A primeira etapa principal e recomendada 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 a implantação dos modelos TorchScript em várias outras configurações, dá uma olhada nos seguintes recursos:

  • Explora a implementação móvel: A documentação PyTorch Mobile fornece directrizes abrangentes para a implementação de modelos em dispositivos móveis, assegurando que as suas aplicações são eficientes e receptivas.

  • 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

Neste guia, exploramos o processo de exportação de modelos Ultralytics YOLOv8 para o formato TorchScript . Seguindo as instruções fornecidas, podes otimizar o desempenho dos modelos YOLOv8 e ganhar flexibilidade para os implementar em várias plataformas e ambientes.

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

Além disso, se quiseres saber mais sobre outras integrações de Ultralytics YOLOv8 , visita a nossa página de guia de integração. Encontrarás muitos recursos e informações úteis.



Criado em 2024-03-01, Atualizado em 2024-03-03
Autores: glenn-jocher (1), abirami-vina (2)

Comentários