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