Salta para o conte√ļdo

TensorRT Exportação para YOLOv8 Modelos

A implantação de modelos de visão computacional em ambientes de alto desempenho pode exigir um formato que maximize a velocidade e a eficiência. Isto é especialmente verdadeiro quando estás a implementar o teu modelo em GPUs NVIDIA.

Ao utilizar o formato de exportação TensorRT , podes melhorar os teus Ultralytics YOLOv8 modelos para uma inferência rápida e eficiente no hardware NVIDIA. Este guia fornece-te passos fáceis de seguir para o processo de conversão e ajuda-te a tirar o máximo partido da tecnologia avançada da NVIDIA nos teus projectos de aprendizagem profunda.

TensorRT

TensorRT Vis√£o geral

TensorRT, desenvolvido pela NVIDIA, √© um kit de desenvolvimento de software (SDK) avan√ßado concebido para infer√™ncia de aprendizagem profunda a alta velocidade. √Č adequado para aplica√ß√Ķes em tempo real, como a dete√ß√£o de objectos.

Este kit de ferramentas optimiza os modelos de aprendizagem profunda para GPUs NVIDIA e resulta em opera√ß√Ķes mais r√°pidas e eficientes. Os modelos TensorRT s√£o submetidos √† otimiza√ß√£o TensorRT , que inclui t√©cnicas como a fus√£o de camadas, calibra√ß√£o de precis√£o (INT8 e FP16), gest√£o din√Ęmica da mem√≥ria tensor e auto-ajuste do kernel. A convers√£o de modelos de aprendizagem profunda para o formato TensorRT permite aos programadores tirar o m√°ximo partido do potencial das GPUs NVIDIA.

TensorRT é conhecido pela sua compatibilidade com vários formatos de modelos, incluindo TensorFlow, PyTorch, e ONNX, fornecendo aos programadores uma solução flexível para integrar e otimizar modelos de diferentes estruturas. Essa versatilidade permite a implantação eficiente de modelos em diversos ambientes de hardware e software.

Principais características dos modelos TensorRT

TensorRT oferecem uma série de características-chave que contribuem para a sua eficiência e eficácia na inferência de aprendizagem profunda a alta velocidade:

  • Calibra√ß√£o de precis√£o: TensorRT suporta calibra√ß√£o de precis√£o, permitindo que os modelos sejam ajustados para requisitos de precis√£o espec√≠ficos. Inclui suporte para formatos de precis√£o reduzida, como INT8 e FP16, que podem aumentar ainda mais a velocidade de infer√™ncia, mantendo n√≠veis de precis√£o aceit√°veis.

  • Fus√£o de camadas: O processo de otimiza√ß√£o do TensorRT inclui a fus√£o de camadas, em que v√°rias camadas de uma rede neural s√£o combinadas em uma √ļnica opera√ß√£o. Isso reduz a sobrecarga computacional e melhora a velocidade de infer√™ncia, minimizando o acesso √† mem√≥ria e a computa√ß√£o.

TensorRT Fus√£o de camadas

  • Gest√£o din√Ęmica da mem√≥ria Tensor : TensorRT gere eficazmente a utiliza√ß√£o da mem√≥ria tensor durante a infer√™ncia, reduzindo a sobrecarga de mem√≥ria e optimizando a atribui√ß√£o de mem√≥ria. Isto resulta numa utiliza√ß√£o mais eficiente da mem√≥ria da GPU.

  • Ajuste autom√°tico do kernel: TensorRT aplica o ajuste autom√°tico do kernel para selecionar o kernel GPU mais optimizado para cada camada do modelo. Essa abordagem adaptativa garante que o modelo aproveite ao m√°ximo o poder computacional da GPU.

Op√ß√Ķes de implanta√ß√£o em TensorRT

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

TensorRT oferece v√°rias op√ß√Ķes de implementa√ß√£o, e cada op√ß√£o equilibra a facilidade de integra√ß√£o, a otimiza√ß√£o do desempenho e a flexibilidade de forma diferente:

  • Implementando dentro de TensorFlow: Este m√©todo integra TensorRT em TensorFlow, permitindo que modelos otimizados sejam executados em um ambiente familiar TensorFlow . √Č √ļtil para modelos com uma mistura de camadas suportadas e n√£o suportadas, pois TF-TRT pode lidar com elas de forma eficiente.

TensorRT Vis√£o geral

  • Aut√≥nomo TensorRT API de tempo de execu√ß√£o: Oferece controlo granular, ideal para aplica√ß√Ķes de desempenho cr√≠tico. √Č mais complexa, mas permite a implementa√ß√£o personalizada de operadores n√£o suportados.

  • NVIDIA Triton Servidor de infer√™ncia: Uma op√ß√£o que suporta modelos de v√°rias estruturas. Particularmente adequado para infer√™ncias na nuvem ou na borda, fornece recursos como execu√ß√£o simult√Ęnea de modelos e an√°lise de modelos.

Exportação de modelos YOLOv8 para TensorRT

Podes melhorar a eficiência da execução e otimizar o desempenho convertendo os modelos YOLOv8 para o formato TensorRT .

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√ß√£oYOLOv8 . 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 mergulhar nas instru√ß√Ķes de utiliza√ß√£o, n√£o te esque√ßas de verificar a gama de modelosYOLOv8 oferecidos por Ultralytics. Isto ajudar-te-√° a escolher o modelo mais adequado √†s necessidades do teu projeto.

Utilização

from ultralytics import YOLO

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

# Export the model to TensorRT format
model.export(format='engine')  # creates 'yolov8n.engine'

# Load the exported TensorRT model
tensorrt_model = YOLO('yolov8n.engine')

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

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

Depois de exportar com √™xito os modelos Ultralytics YOLOv8 para o formato TensorRT , est√°s agora pronto para os implementar. Para obter instru√ß√Ķes detalhadas sobre a implanta√ß√£o dos modelos TensorRT em v√°rias configura√ß√Ķes, d√° uma olhada nos recursos a seguir:

Resumo

Neste guia, concentramo-nos na conversão de modelos Ultralytics YOLOv8 para o formato de modelo TensorRT da NVIDIA. Esta etapa de conversão é crucial para melhorar a eficiência e a velocidade dos modelos YOLOv8 , tornando-os mais eficazes e adequados para diversos ambientes de implementação.

Para obter mais informa√ß√Ķes sobre os detalhes de utiliza√ß√£o, consulta a documenta√ß√£o oficialTensorRT .

Se tiveres curiosidade em saber mais sobre outras integra√ß√Ķes de Ultralytics YOLOv8 , a nossa p√°gina de guia de integra√ß√£o fornece uma vasta sele√ß√£o de recursos informativos e conhecimentos.



Criado em 2024-01-28, Atualizado em 2024-01-28
Autores: abirami-vina (1)

Coment√°rios