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, developed by NVIDIA, is an advanced software development kit (SDK) designed for high-speed deep learning inference. It's well-suited for real-time applications like object detection.

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. Esta versatilidade permite a implementaçã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

Before we look at the code for exporting YOLOv8 models to the TensorRT format, let's understand where TensorRT models are normally used.

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√™ncia 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.

Exportação de TensorRT com quantização INT8

A exporta√ß√£o de modelos Ultralytics YOLO utilizando TensorRT com precis√£o INT8 executa a quantiza√ß√£o p√≥s-treino (PTQ). TensorRT utiliza a calibra√ß√£o para PTQ, que mede a distribui√ß√£o de activa√ß√Ķes dentro de cada ativa√ß√£o tensor √† medida que o modelo YOLO processa a infer√™ncia em dados de entrada representativos e, em seguida, utiliza essa distribui√ß√£o para estimar valores de escala para cada tensor. Cada ativa√ß√£o tensor candidata a quantiza√ß√£o tem uma escala associada que √© deduzida por um processo de calibra√ß√£o.

Ao processar redes implicitamente quantizadas, o TensorRT usa a INT8 de forma oportuna para otimizar o tempo de execução da camada. Se uma camada for executada mais rapidamente em INT8 e tiver atribuído escalas de quantização às suas entradas e saídas de dados, então um kernel com precisão INT8 é atribuído a essa camada; caso contrário, TensorRT selecciona uma precisão de FP32 ou FP16 para o kernel com base no que resultar num tempo de execução mais rápido para essa camada.

Dica

√Č fundamental garantir que o mesmo dispositivo que ir√° utilizar os pesos do modelo TensorRT para a implanta√ß√£o seja utilizado para exportar com precis√£o INT8, uma vez que os resultados da calibra√ß√£o podem variar entre dispositivos.

Configuração da exportação INT8

Os argumentos fornecidos quando utilizas exporta√ß√£o para um modelo Ultralytics YOLO ir√° muito influencia o desempenho do modelo exportado. Tamb√©m ter√£o de ser seleccionados com base nos recursos dispon√≠veis do dispositivo, mas os argumentos predefinidos deve trabalha para a maioria GPUs NVIDIA discretas Ampere (ou mais recentes). O algoritmo de calibra√ß√£o utilizado √© "ENTROPY_CALIBRATION_2" e podes ler mais pormenores sobre as op√ß√Ķes dispon√≠veis no TensorRT Developer Guide. Ultralytics testes revelaram que "ENTROPY_CALIBRATION_2" foi a melhor escolha e as exporta√ß√Ķes est√£o fixadas para utilizar este algoritmo.

  • workspace : Controla o tamanho (em GiB) da atribui√ß√£o de mem√≥ria do dispositivo durante a convers√£o dos pesos do modelo.

    • Ajusta a workspace de acordo com as tuas necessidades de calibra√ß√£o e disponibilidade de recursos. Embora um valor maior workspace pode aumentar o tempo de calibra√ß√£o, permite ao TensorRT explorar uma gama mais vasta de t√°cticas de otimiza√ß√£o, melhorando potencialmente o desempenho e a precis√£o do modelo. Por outro lado, um modelo mais pequeno workspace pode reduzir o tempo de calibra√ß√£o, mas pode limitar as estrat√©gias de otimiza√ß√£o, afectando a qualidade do modelo quantizado.

    • A predefini√ß√£o √© workspace=4 (GiB), este valor pode ter de ser aumentado se a calibra√ß√£o falhar (sair sem aviso).

    • TensorRT informa-te UNSUPPORTED_STATE durante a exporta√ß√£o se o valor de workspace √© maior do que a mem√≥ria dispon√≠vel no dispositivo, o que significa que o valor para workspace deve ser reduzido.

    • Se workspace estiver definido para o valor m√°ximo e a calibra√ß√£o falhar, considera a possibilidade de reduzir os valores de imgsz e batch para reduzir os requisitos de mem√≥ria.

    • Lembra-te de que a calibra√ß√£o da INT8 √© espec√≠fica de cada dispositivo, pelo que pedir emprestada uma GPU "topo de gama" para calibra√ß√£o pode resultar num fraco desempenho quando a infer√™ncia √© executada noutro dispositivo.

  • batch : O tamanho m√°ximo do lote que ser√° utilizado para a infer√™ncia. Durante a infer√™ncia, podem ser utilizados lotes mais pequenos, mas a infer√™ncia n√£o aceitar√° lotes maiores do que o especificado.

    Nota

    During calibration, twice the `batch` size provided will be used. Using small batches can lead to inaccurate scaling during calibration. This is because the process adjusts based on the data it sees. Small batches might not capture the full range of values, leading to issues with the final calibration, so the `batch` size is doubled automatically. If no batch size is specified `batch=1`, calibration will be run at `batch=1 * 2` to reduce calibration scaling errors.
    

As experiências da NVIDIA levaram-nos a recomendar a utilização de pelo menos 500 imagens de calibragem representativas dos dados do teu modelo, com calibragem de quantização INT8. Esta é uma orientação e não uma duro e terás de experimentar o que é necessário para ter um bom desempenho no teu conjunto de dados. Uma vez que os dados de calibração são necessários para a calibração INT8 com TensorRT, certifica-te de que usas o data argumento quando int8=True para TensorRT e utiliza data="my_dataset.yaml"que irá utilizar as imagens de validação para calibrar. Quando não é passado nenhum valor para data com exportação para TensorRT com quantização INT8, a predefinição será utilizar um dos "pequenos" conjuntos de dados de exemplo baseados na tarefa modelo em vez de lançares um erro.

Exemplo

from ultralytics import YOLO

model = YOLO("yolov8n.pt")
model.export(
    format="engine",
    dynamic=True,  # (1)!
    batch=8,  # (2)!
    workspace=4,  # (3)!
    int8=True,
    data="coco.yaml",  # (4)!
)

# Load the exported TensorRT INT8 model
model = YOLO("yolov8n.engine", task="detect")

# Run inference
result = model.predict("https://ultralytics.com/images/bus.jpg")
  1. Exporta com eixos din√Ęmicos, isto ser√° ativado por defeito quando exportar com int8=True mesmo que n√£o estejas explicitamente definido. V√™ argumentos de exporta√ß√£o para mais informa√ß√Ķes.
  2. Define um tamanho máximo de lote de 8 para o modelo exportado, que calibra com batch = 2 * 8 para evitar erros de escala durante a calibração.
  3. Atribui 4 GiB de memória em vez de atribuir o dispositivo inteiro para o processo de conversão.
  4. Utiliza o conjunto de dados COCO para calibração, especificamente as imagens utilizadas para validação (5.000 no total).
# Export a YOLOv8n PyTorch model to TensorRT format with INT8 quantization
yolo export model=yolov8n.pt format=engine batch=8 workspace=4 int8=True data=coco.yaml  # creates 'yolov8n.engine''

# Run inference with the exported TensorRT quantized model
yolo predict model=yolov8n.engine source='https://ultralytics.com/images/bus.jpg'
Cache de calibração

TensorRT gera uma calibra√ß√£o .cache que pode ser reutilizado para acelerar a exporta√ß√£o de futuros pesos do modelo utilizando os mesmos dados, mas isto pode resultar numa calibra√ß√£o deficiente quando os dados s√£o muito diferentes ou se o batch √© alterado drasticamente. Nestas circunst√Ęncias, o valor existente .cache deve ser renomeado e movido para um diret√≥rio diferente ou eliminado por completo.

Vantagens da utilização de YOLO com TensorRT INT8

  • Reduz o tamanho do modelo: A quantiza√ß√£o de FP32 para INT8 pode reduzir o tamanho do modelo em 4x (no disco ou na mem√≥ria), levando a tempos de download mais r√°pidos, menores requisitos de armazenamento e menor espa√ßo de mem√≥ria ao implantar um modelo.

  • Menor consumo de energia: Opera√ß√Ķes de precis√£o reduzida para modelos INT8 exportados para YOLO podem consumir menos energia em compara√ß√£o com modelos FP32, especialmente para dispositivos alimentados por bateria.

  • Velocidades de infer√™ncia melhoradas: TensorRT optimiza o modelo para o hardware de destino, o que pode levar a velocidades de infer√™ncia mais r√°pidas em GPUs, dispositivos incorporados e aceleradores.

Nota sobre as velocidades de inferência

√Č de esperar que as primeiras chamadas de infer√™ncia com um modelo exportado para TensorRT INT8 tenham tempos de pr√©-processamento, infer√™ncia e/ou p√≥s-processamento mais longos do que o habitual. Isto tamb√©m pode ocorrer quando alteras imgsz durante a infer√™ncia, especialmente quando imgsz n√£o √© o mesmo que foi especificado durante a exporta√ß√£o (exporta imgsz √© definido como TensorRT perfil "√≥timo").

Desvantagens da utilização de YOLO com TensorRT INT8

  • Diminui as m√©tricas de avalia√ß√£o: Se utilizares uma precis√£o inferior, significa que mAP, Precision, Recall ou qualquer outra m√©trica utilizada para avaliar o desempenho do modelo √© suscet√≠vel de ser um pouco pior. V√™ o Sec√ß√£o de resultados de desempenho para comparar as diferen√ßas de mAP50 e mAP50-95 quando exportas com INT8 numa pequena amostra de v√°rios dispositivos.

  • Aumenta o tempo de desenvolvimento: Encontrar as defini√ß√Ķes "√≥ptimas" para a calibra√ß√£o da INT8 para o conjunto de dados e o dispositivo pode exigir uma quantidade significativa de testes.

  • Hardware dependency: Calibration and performance gains could be highly hardware dependent and model weights are less transferable.

Ultralytics YOLO TensorRT Desempenho das exporta√ß√Ķes

NVIDIA A100

Desempenho

Testado com o Ubuntu 22.04.3 LTS, python 3.10.12, ultralytics==8.2.4, tensorrt==8.6.1.post1

Consulta os Documentos de deteção para obteres exemplos de utilização com estes modelos treinados em COCO, que incluem 80 classes pré-treinadas.

Nota

Tempos de inferência apresentados para mean, min (mais rápido), e max (mais lento) para cada teste utilizando pesos pré-treinados yolov8n.engine

Precisão Teste de avaliação média
(ms)
min | max
(ms)
mAPval
50(B)
mAPval
50-95(B)
batch tamanho
(pixéis)
FP32 Prevê 0.52 0.51 | 0.56 8 640
FP32 COCOval 0.52 0.52 0.37 1 640
FP16 Prevê 0.34 0.34 | 0.41 8 640
FP16 COCOval 0.33 0.52 0.37 1 640
INT8 Prevê 0.28 0.27 | 0.31 8 640
INT8 COCOval 0.29 0.47 0.33 1 640

Consulta os documentos de segmentação para obteres exemplos de utilização com estes modelos treinados em COCO, que incluem 80 classes pré-treinadas.

Nota

Tempos de inferência apresentados para mean, min (mais rápido), e max (mais lento) para cada teste utilizando pesos pré-treinados yolov8n-seg.engine

Precisão Teste de avaliação média
(ms)
min | max
(ms)
mAPval
50(B)
mAPval
50-95(B)
mAPval
50(M)
mAPval
50-95(M)
batch tamanho
(pixéis)
FP32 Prevê 0.62 0.61 | 0.68 8 640
FP32 COCOval 0.63 0.52 0.36 0.49 0.31 1 640
FP16 Prevê 0.40 0.39 | 0.44 8 640
FP16 COCOval 0.43 0.52 0.36 0.49 0.30 1 640
INT8 Prevê 0.34 0.33 | 0.37 8 640
INT8 COCOval 0.36 0.46 0.32 0.43 0.27 1 640

Consulta os documentos de classificação para obteres exemplos de utilização com estes modelos treinados no ImageNet, que incluem 1000 classes pré-treinadas.

Nota

Tempos de inferência apresentados para mean, min (mais rápido), e max (mais lento) para cada teste utilizando pesos pré-treinados yolov8n-cls.engine

Precisão Teste de avaliação média
(ms)
min | max
(ms)
topo-1 top-5 batch tamanho
(pixéis)
FP32 Prevê 0.26 0.25 | 0.28 8 640
FP32 ImageNetval 0.26 0.35 0.61 1 640
FP16 Prevê 0.18 0.17 | 0.19 8 640
FP16 ImageNetval 0.18 0.35 0.61 1 640
INT8 Prevê 0.16 0.15 | 0.57 8 640
INT8 ImageNetval 0.15 0.32 0.59 1 640

Consulta os documentos de estimativa de pose para exemplos de utilização com estes modelos treinados em COCO, que incluem uma classe pré-treinada, "pessoa".

Nota

Tempos de inferência apresentados para mean, min (mais rápido), e max (mais lento) para cada teste utilizando pesos pré-treinados yolov8n-pose.engine

Precisão Teste de avaliação média
(ms)
min | max
(ms)
mAPval
50(B)
mAPval
50-95(B)
mAPval
50(P)
mAPval
50-95(P)
batch tamanho
(pixéis)
FP32 Prevê 0.54 0.53 | 0.58 8 640
FP32 COCOval 0.55 0.91 0.69 0.80 0.51 1 640
FP16 Prevê 0.37 0.35 | 0.41 8 640
FP16 COCOval 0.36 0.91 0.69 0.80 0.51 1 640
INT8 Prevê 0.29 0.28 | 0.33 8 640
INT8 COCOval 0.30 0.90 0.68 0.78 0.47 1 640

Consulta os documentos de deteção orientada para obteres exemplos de utilização com estes modelos treinados no DOTAv1, que incluem 15 classes pré-treinadas.

Nota

Tempos de inferência apresentados para mean, min (mais rápido), e max (mais lento) para cada teste utilizando pesos pré-treinados yolov8n-obb.engine

Precisão Teste de avaliação média
(ms)
min | max
(ms)
mAPval
50(B)
mAPval
50-95(B)
batch tamanho
(pixéis)
FP32 Prevê 0.52 0.51 | 0.59 8 640
FP32 DOTAv1val 0.76 0.50 0.36 1 640
FP16 Prevê 0.34 0.33 | 0.42 8 640
FP16 DOTAv1val 0.59 0.50 0.36 1 640
INT8 Prevê 0.29 0.28 | 0.33 8 640
INT8 DOTAv1val 0.32 0.45 0.32 1 640

GPUs de consumo

Desempenho de deteção (COCO)

Testado com o Windows 10.0.19045, python 3.10.9, ultralytics==8.2.4, tensorrt==10.0.0b6

Nota

Tempos de inferência apresentados para mean, min (mais rápido), e max (mais lento) para cada teste utilizando pesos pré-treinados yolov8n.engine

Precisão Teste de avaliação média
(ms)
min | max
(ms)
mAPval
50(B)
mAPval
50-95(B)
batch tamanho
(pixéis)
FP32 Prevê 1.06 0.75 | 1.88 8 640
FP32 COCOval 1.37 0.52 0.37 1 640
FP16 Prevê 0.62 0.75 | 1.13 8 640
FP16 COCOval 0.85 0.52 0.37 1 640
INT8 Prevê 0.52 0.38 | 1.00 8 640
INT8 COCOval 0.74 0.47 0.33 1 640

Testado com o Windows 10.0.22631, python 3.11.9, ultralytics==8.2.4, tensorrt==10.0.1

Nota

Tempos de inferência apresentados para mean, min (mais rápido), e max (mais lento) para cada teste utilizando pesos pré-treinados yolov8n.engine

Precisão Teste de avaliação média
(ms)
min | max
(ms)
mAPval
50(B)
mAPval
50-95(B)
batch tamanho
(pixéis)
FP32 Prevê 1.76 1.69 | 1.87 8 640
FP32 COCOval 1.94 0.52 0.37 1 640
FP16 Prevê 0.86 0.75 | 1.00 8 640
FP16 COCOval 1.43 0.52 0.37 1 640
INT8 Prevê 0.80 0.75 | 1.00 8 640
INT8 COCOval 1.35 0.47 0.33 1 640

Testado com o Pop!_OS 22.04 LTS, python 3.10.12, ultralytics==8.2.4, tensorrt==8.6.1.post1

Nota

Tempos de inferência apresentados para mean, min (mais rápido), e max (mais lento) para cada teste utilizando pesos pré-treinados yolov8n.engine

Precisão Teste de avaliação média
(ms)
min | max
(ms)
mAPval
50(B)
mAPval
50-95(B)
batch tamanho
(pixéis)
FP32 Prevê 2.84 2.84 | 2.85 8 640
FP32 COCOval 2.94 0.52 0.37 1 640
FP16 Prevê 1.09 1.09 | 1.10 8 640
FP16 COCOval 1.20 0.52 0.37 1 640
INT8 Prevê 0.75 0.74 | 0.75 8 640
INT8 COCOval 0.76 0.47 0.33 1 640

Dispositivos incorporados

Desempenho de deteção (COCO)

Testado com JetPack 6.0 (L4T 36.3) Ubuntu 22.04.4 LTS, python 3.10.12, ultralytics==8.2.16, tensorrt==10.0.1

Nota

Tempos de inferência apresentados para mean, min (mais rápido), e max (mais lento) para cada teste utilizando pesos pré-treinados yolov8n.engine

Precisão Teste de avaliação média
(ms)
min | max
(ms)
mAPval
50(B)
mAPval
50-95(B)
batch tamanho
(pixéis)
FP32 Prevê 6.11 6.10 | 6.29 8 640
FP32 COCOval 6.17 0.52 0.37 1 640
FP16 Prevê 3.18 3.18 | 3.20 8 640
FP16 COCOval 3.19 0.52 0.37 1 640
INT8 Prevê 2.30 2.29 | 2.35 8 640
INT8 COCOval 2.32 0.46 0.32 1 640

Métodos de avaliação

Expande as sec√ß√Ķes abaixo para obteres informa√ß√Ķes sobre a forma como estes modelos foram exportados e testados.

Exportar configura√ß√Ķes

Consulta o modo de exportação para obteres detalhes sobre os argumentos de configuração de exportação.

from ultralytics import YOLO

model = YOLO("yolov8n.pt")

# TensorRT FP32
out = model.export(format="engine", imgsz=640, dynamic=True, verbose=False, batch=8, workspace=2)

# TensorRT FP16
out = model.export(format="engine", imgsz=640, dynamic=True, verbose=False, batch=8, workspace=2, half=True)

# TensorRT INT8 with calibration `data` (i.e. COCO, ImageNet, or DOTAv1 for appropriate model task)
out = model.export(
    format="engine", imgsz=640, dynamic=True, verbose=False, batch=8, workspace=2, int8=True, data="coco8.yaml"
)
Prever laço

Consulta o modo de previs√£o para obteres mais informa√ß√Ķes.

import cv2

from ultralytics import YOLO

model = YOLO("yolov8n.engine")
img = cv2.imread("path/to/image.jpg")

for _ in range(100):
    result = model.predict(
        [img] * 8,  # batch=8 of the same image
        verbose=False,
        device="cuda",
    )
Configuração da validação

Vê val modo para saber mais sobre argumentos de configuração de validação.

from ultralytics import YOLO

model = YOLO("yolov8n.engine")
results = model.val(
    data="data.yaml",  # COCO, ImageNet, or DOTAv1 for appropriate model task
    batch=1,
    imgsz=640,
    verbose=False,
    device="cuda",
)

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. Este passo 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 integra√ß√Ķes adicionais em Ultralytics YOLOv8 , a nossa p√°gina de guia de integra√ß√£o fornece uma vasta sele√ß√£o de recursos informativos e conhecimentos.



Created 2024-01-28, Updated 2024-06-10
Authors: glenn-jocher (8), IvorZhu331 (1), Burhan-Q (2), abirami-vina (1)

Coment√°rios