Ir para o conteúdo

Benchmarking de Modelos com Ultralytics YOLO

Ecossistema e integrações Ultralytics YOLO

Visualização de Benchmark

Atualizar Navegador

Pode ser necessário atualizar a página para visualizar os gráficos corretamente devido a possíveis problemas com cookies.

Introdução

Depois que seu modelo é treinado e validado, o próximo passo lógico é avaliar seu desempenho em vários cenários do mundo real. O modo Benchmark no Ultralytics YOLO11 serve a esse propósito, fornecendo uma estrutura robusta para avaliar a velocidade e a precisão do seu modelo em uma variedade de formatos de exportação.



Assista: Benchmark de Modelos Ultralytics YOLO11 | Como Comparar o Desempenho do Modelo em Diferentes Hardwares?

Por que o Benchmarking é Crucial?

  • Decisões Informadas: Obtenha insights sobre as compensações entre velocidade e precisão.
  • Alocação de Recursos: Entenda como diferentes formatos de exportação se comportam em diferentes hardwares.
  • Otimização: Descubra qual formato de exportação oferece o melhor desempenho para seu caso de uso específico.
  • Eficiência de Custo: Utilize os recursos de hardware de forma mais eficiente com base nos resultados de benchmark.

Métricas Chave no Modo Benchmark

Formatos de Exportação Suportados

  • ONNX: Para um desempenho otimizado da CPU
  • TensorRT: Para máxima eficiência da GPU
  • OpenVINO: Para otimização de hardware Intel
  • CoreML, TensorFlow SavedModel e Mais: Para diversas necessidades de implantação.

Dica

  • Exporte para ONNX ou OpenVINO para uma aceleração de CPU de até 3x.
  • Exporte para TensorRT para uma aceleração de GPU de até 5x.

Exemplos de uso

Executa benchmarks YOLO11n em todos os formatos de exportação suportadosONNX, TensorRT, etc.). Consulte a secção Argumentos abaixo para obter uma lista completa das opções de exportação.

Exemplo

from ultralytics.utils.benchmarks import benchmark

# Benchmark on GPU
benchmark(model="yolo11n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)

# Benchmark specific export format
benchmark(model="yolo11n.pt", data="coco8.yaml", imgsz=640, format="onnx")
yolo benchmark model=yolo11n.pt data='coco8.yaml' imgsz=640 half=False device=0

# Benchmark specific export format
yolo benchmark model=yolo11n.pt data='coco8.yaml' imgsz=640 format=onnx

Argumentos

Argumentos como model, data, imgsz, half, device, verbose e format oferecem aos usuários a flexibilidade de ajustar os benchmarks para suas necessidades específicas e comparar o desempenho de diferentes formatos de exportação com facilidade.

ChaveValor PadrãoDescrição
modelNoneEspecifica o caminho para o arquivo do modelo. Aceita ambos os .pt e .yaml formatos, por exemplo, "yolo11n.pt" para modelos pré-treinados ou arquivos de configuração.
dataNoneCaminho para um arquivo YAML que define o conjunto de dados para benchmarking, normalmente incluindo caminhos e configurações para dados de validação. Exemplo: "coco8.yaml".
imgsz640O tamanho da imagem de entrada para o modelo. Pode ser um único inteiro para imagens quadradas ou uma tupla (width, height) para não quadradas, por exemplo, (640, 480).
halfFalseAtiva a inferência FP16 (meia precisão), reduzindo o uso de memória e possivelmente aumentando a velocidade em hardware compatível. Use half=True para ativar.
int8FalseAtiva a quantização INT8 para um desempenho ainda mais otimizado em dispositivos suportados, especialmente útil para dispositivos edge. Defina int8=True para usar.
deviceNoneDefine o(s) dispositivo(s) de computação para benchmarking, como "cpu" ou "cuda:0".
verboseFalseControla o nível de detalhe na saída de registro. Defina verbose=True para logs detalhados.
format''Compara apenas o formato de exportação especificado (por exemplo, format=onnx). Deixe-o em branco para testar automaticamente todos os formatos suportados.

Formatos de Exportação

Os benchmarks tentarão ser executados automaticamente em todos os formatos de exportação possíveis listados abaixo. Alternativamente, você pode executar benchmarks para um formato específico usando o format argumento, que aceita qualquer um dos formatos mencionados abaixo.

Formatoformat ArgumentoModeloMetadadosArgumentos
PyTorch-yolo11n.pt-
TorchScripttorchscriptyolo11n.torchscriptimgsz, half, dynamic, optimize, nms, batch, device
ONNXonnxyolo11n.onnximgsz, half, dynamic, simplify, opset, nms, batch, device
OpenVINOopenvinoyolo11n_openvino_model/imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRTengineyolo11n.engineimgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreMLcoremlyolo11n.mlpackageimgsz, dynamic, half, int8, nms, batch, device
TF SavedModelsaved_modelyolo11n_saved_model/imgsz, keras, int8, nms, batch, device
TF GraphDefpbyolo11n.pbimgsz, batch, device
TF Litetfliteyolo11n.tfliteimgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPUedgetpuyolo11n_edgetpu.tfliteimgsz, device
TF.jstfjsyolo11n_web_model/imgsz, half, int8, nms, batch, device
PaddlePaddlepaddleyolo11n_paddle_model/imgsz, batch, device
MNNmnnyolo11n.mnnimgsz, batch, int8, half, device
NCNNncnnyolo11n_ncnn_model/imgsz, half, batch, device
IMX500imxyolo11n_imx_model/imgsz, int8, data, fraction, device
RKNNrknnyolo11n_rknn_model/imgsz, batch, name, device
ExecTorchexecutorchyolo11n_executorch_model/imgsz, device

Veja todos os detalhes do modo export detalhes em Exportar página.

FAQ

Como posso avaliar o desempenho do meu modelo YOLO11 usando Ultralytics?

Ultralytics YOLO11 oferece um modo de Benchmark para avaliar o desempenho do seu modelo em diferentes formatos de exportação. Este modo fornece insights sobre métricas-chave como mean Average Precision (mAP50-95), precisão e tempo de inferência em milissegundos. Para executar benchmarks, você pode usar comandos Python ou CLI. Por exemplo, para benchmark em uma GPU:

Exemplo

from ultralytics.utils.benchmarks import benchmark

# Benchmark on GPU
benchmark(model="yolo11n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
yolo benchmark model=yolo11n.pt data='coco8.yaml' imgsz=640 half=False device=0

Para mais detalhes sobre os argumentos de benchmark, visite a seção Arguments.

Quais são os benefícios de exportar modelos YOLO11 para diferentes formatos?

Exportar modelos YOLO11 para diferentes formatos, como ONNX, TensorRT e OpenVINO permite otimizar o desempenho com base no seu ambiente de implantação. Por exemplo:

  • ONNX: Fornece até 3x de aceleração da CPU.
  • TensorRT: Oferece até 5x de aceleração da GPU.
  • OpenVINO: Otimizado especificamente para hardware Intel.

Esses formatos aprimoram a velocidade e a precisão de seus modelos, tornando-os mais eficientes para várias aplicações do mundo real. Visite a página Exportar para obter detalhes completos.

Por que o benchmarking é crucial na avaliação de modelos YOLO11?

Fazer o benchmark dos seus modelos YOLO11 é essencial por vários motivos:

  • Decisões Informadas: Entenda as compensações entre velocidade e precisão.
  • Alocação de Recursos: Avalie o desempenho em diferentes opções de hardware.
  • Otimização: Determine qual formato de exportação oferece o melhor desempenho para casos de uso específicos.
  • Eficiência de Custos: Otimize o uso do hardware com base nos resultados de benchmark.

Métricas chave como mAP50-95, precisão Top-5 e tempo de inferência ajudam a fazer estas avaliações. Consulte a seção Métricas Chave para mais informações.

Quais formatos de exportação são suportados pelo YOLO11 e quais são suas vantagens?

O YOLO11 suporta uma variedade de formatos de exportação, cada um adaptado para hardware e casos de uso específicos:

  • ONNX: Melhor para desempenho da CPU.
  • TensorRT: Ideal para eficiência da GPU.
  • OpenVINO: Otimizado para hardware Intel.
  • CoreML e TensorFlow: Útil para aplicações iOS e aplicações de ML em geral.

Para uma lista completa dos formatos suportados e suas respectivas vantagens, consulte a seção Formatos de Exportação Suportados.

Quais argumentos posso usar para ajustar meus benchmarks YOLO11?

Ao executar benchmarks, vários argumentos podem ser personalizados para atender a necessidades específicas:

  • model: Caminho para o arquivo do modelo (por exemplo, "yolo11n.pt").
  • data: Caminho para um arquivo YAML que define o conjunto de dados (por exemplo, "coco8.yaml").
  • imgsz: O tamanho da imagem de entrada, seja como um único inteiro ou uma tupla.
  • half: Ative a inferência FP16 para melhor desempenho.
  • int8: Ative a quantização INT8 para dispositivos edge.
  • device: Especifique o dispositivo de computação (por exemplo, "cpu", "cuda:0").
  • verbose: Controla o nível de detalhe do registo.

Para uma lista completa de argumentos, consulte a seção Argumentos.



📅C riado há 2 anos ✏️ Atualizado há 3 dias
glenn-jocherBurhan-Qambitious-octopuslakshanthadRizwanMunawarY-T-GUltralyticsAssistantjk4eMatthewNoyceLaughing-q

Comentários