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