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 olharmos o código para exportar YOLOv8 modelos para o TorchScript formato, vamos entender onde TorchScript modelos são normalmente usados.

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 telem√≥vel fornece um tempo de execu√ß√£o para executar estes modelos nas 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.

FAQ

O que é Ultralytics YOLOv8 modelo de exportação para TorchScript?

A exportação de um modelo Ultralytics YOLOv8 para TorchScript permite uma implantação flexível e entre plataformas. TorchScript A exportação de um modelo para PyTorch , uma parte do ecossistema , 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 incorporados, ambientes C++, aplicativos móveis e até mesmo navegadores da Web. A exportação para TorchScript permite um desempenho eficiente e uma aplicabilidade mais ampla de seus modelos YOLOv8 em diversas plataformas.

Como é que posso exportar o meu modelo YOLOv8 para TorchScript utilizando Ultralytics?

Para exportar um modelo YOLOv8 para TorchScript, podes utilizar o seguinte código de exemplo:

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 mais detalhes sobre o processo de exportação, consulta a documentaçãoUltralytics sobre exportação.

Por que raz√£o devo utilizar TorchScript para implementar modelos YOLOv8 ?

A utilização de TorchScript para implementar modelos YOLOv8 oferece várias vantagens:

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

Quais são os passos de instalação para exportar modelos de YOLOv8 para TorchScript?

Para instalar o pacote necess√°rio para exportar os modelos YOLOv8 , utiliza o seguinte comando:

Instalação

# Install the required package for YOLOv8
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.

Como posso implementar os meus modelos TorchScript YOLOv8 exportados?

Depois de exportar os modelos YOLOv8 para o formato TorchScript , pode implement√°-los numa variedade de plataformas:

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



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

Coment√°rios