Saltar para o conteúdo

Aferição de modelos com Ultralytics YOLO

Ultralytics YOLO ecossistema e integrações

Visualização de Benchmark

Atualizar o navegador

Poderá ser necessário atualizar a página para visualizar os gráficos corretamente devido a potenciais problemas com os cookies.











Introdução

Depois de o modelo ser treinado e validado, o próximo passo lógico é avaliar o seu desempenho em vários cenários do mundo real. O modo Benchmark em Ultralytics YOLO11 serve este objetivo, fornecendo uma estrutura robusta para avaliar a velocidade e a precisão do seu modelo numa série de formatos de exportação.



Ver: Ultralytics Tutorial de modos: Referência

Porque é que o Benchmarking é crucial?

  • Decisões informadas: Obtenha informações sobre os compromissos entre velocidade e precisão.
  • Atribuição de recursos: Compreender o desempenho de diferentes formatos de exportação em diferentes hardwares.
  • Otimização: Saiba qual o formato de exportação que oferece o melhor desempenho para o seu caso de utilização específico.
  • Eficiência de custos: Utilizar de forma mais eficiente os recursos de hardware com base nos resultados de benchmark.

Principais métricas no modo de referência

Formatos de exportação suportados

  • ONNX: Para um desempenho ótimo em CPU
  • TensorRT: Para uma eficiência máxima GPU
  • OpenVINO: Para Intel otimização de hardware
  • CoreML, TensorFlow SavedModel , e muito mais: Para diversas necessidades de implantação.

Dica

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

Exemplos de utilização

Execute os benchmarks YOLO11n em todos os formatos de exportação suportados, incluindo ONNX, TensorRT etc. Consulte a secção Argumentos abaixo para obter uma lista completa de argumentos 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)
yolo benchmark model=yolo11n.pt data='coco8.yaml' imgsz=640 half=False device=0

Argumentos

Argumentos como model, data, imgsz, half, devicee verbose oferecem aos utilizadores a flexibilidade de ajustar os parâmetros de referência às suas necessidades específicas e comparar facilmente o desempenho de diferentes formatos de exportação.

Chave Valor por defeito Descrição
model None Especifica o caminho para o ficheiro do modelo. Aceita ambos .pt e .yaml formatos, por exemplo, "yolo11n.pt" para modelos pré-treinados ou ficheiros de configuração.
data None Caminho para um ficheiro YAML que define o conjunto de dados para a avaliação comparativa, incluindo normalmente caminhos e definições para dados de validação. Exemplo: "coco8.yaml".
imgsz 640 O tamanho da imagem de entrada para o modelo. Pode ser um único número inteiro para imagens quadradas ou uma tupla (width, height) para não-quadrado, por exemplo, (640, 480).
half False Permite a inferência FP16 (meia-precisão), reduzindo a utilização de memória e possivelmente aumentando a velocidade em hardware compatível. Utilizar half=True para ativar.
int8 False Ativa a quantização INT8 para um melhor desempenho optimizado nos dispositivos suportados, especialmente útil para dispositivos de ponta. Definir int8=True para utilizar.
device None Define o(s) dispositivo(s) de computação para a aferição de desempenhos, tais como "cpu" ou "cuda:0".
verbose False Controla o nível de detalhe na saída de registo. Um valor booleano; definido verbose=True para registos detalhados ou um valor flutuante para erros de limiar.

Formatos de exportação

Os testes de referência tentarão ser executados automaticamente em todos os formatos de exportação possíveis abaixo.

Formato format Argumento Modelo Metadados Argumentos
PyTorch - yolo11n.pt -
TorchScript torchscript yolo11n.torchscript imgsz, optimize, batch
ONNX onnx yolo11n.onnx imgsz, half, dynamic, simplify, opset, batch
OpenVINO openvino yolo11n_openvino_model/ imgsz, half, int8, batch
TensorRT engine yolo11n.engine imgsz, half, dynamic, simplify, workspace, int8, batch
CoreML coreml yolo11n.mlpackage imgsz, half, int8, nms, batch
TF SavedModel saved_model yolo11n_saved_model/ imgsz, keras, int8, batch
TF GraphDef pb yolo11n.pb imgsz, batch
TF Leve tflite yolo11n.tflite imgsz, half, int8, batch
TF Borda TPU edgetpu yolo11n_edgetpu.tflite imgsz
TF.js tfjs yolo11n_web_model/ imgsz, half, int8, batch
PaddlePaddle paddle yolo11n_paddle_model/ imgsz, batch
MNN mnn yolo11n.mnn imgsz, batch, int8, half
NCNN ncnn yolo11n_ncnn_model/ imgsz, half, batch
IMX500 imx yolov8n_imx_model/ imgsz, int8

Ver completo export pormenores no Exportação página.

FAQ

Como é que faço uma avaliação comparativa do desempenho do meu modelo YOLO11 utilizando Ultralytics?

Ultralytics YOLO11 oferece um modo Benchmark para avaliar o desempenho do seu modelo em diferentes formatos de exportação. Este modo fornece informações sobre as principais métricas, como a precisão média (mAP50-95), a exatidão e o tempo de inferência em milissegundos. Para executar benchmarks, você pode usar os comandos Python ou CLI . Por exemplo, para fazer benchmark em um 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 obter mais detalhes sobre os argumentos de referência, visite a secção Argumentos.

Quais são as vantagens de exportar modelos YOLO11 para diferentes formatos?

A exportação de modelos YOLO11 para diferentes formatos, como ONNX, TensorRT e OpenVINO , permite-lhe otimizar o desempenho com base no seu ambiente de implementação. Por exemplo:

  • ONNX: Oferece até 3x mais velocidade em CPU .
  • TensorRT: Oferece até 5x mais velocidade em GPU .
  • OpenVINO: Especificamente optimizado para o hardware Intel . Estes formatos melhoram a velocidade e a precisão dos seus modelos, tornando-os mais eficientes para várias aplicações do mundo real. Visite a página Exportar para obter detalhes completos.

Porque é que o benchmarking é crucial na avaliação dos modelos YOLO11 ?

A avaliação comparativa dos seus modelos YOLO11 é essencial por várias razões:

  • Decisões informadas: Compreender as soluções de compromisso entre velocidade e precisão.
  • Atribuição de recursos: Avaliar o desempenho em diferentes opções de hardware.
  • Otimização: Determinar qual o formato de exportação que oferece o melhor desempenho para casos de utilização específicos.
  • Eficiência de custos: Otimizar a utilização de hardware com base em resultados de benchmark. As principais métricas, como mAP50-95, precisão Top-5 e tempo de inferência, ajudam a fazer essas avaliações. Consulte a secção Principais métricas para obter mais informações.

Que formatos de exportação são suportados por YOLO11, e quais são as suas vantagens?

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

  • ONNX: Melhor para CPU desempenho.
  • TensorRT: Ideal para GPU eficiência.
  • OpenVINO: Optimizado para o hardware Intel .
  • CoreML & TensorFlow: Útil para iOS e aplicações gerais de ML. Para obter uma lista completa dos formatos suportados e as respectivas vantagens, consulte a secção Formatos de exportação suportados.

Que argumentos posso utilizar para afinar os meus parâmetros de referência YOLO11 ?

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

  • modelo: Caminho para o ficheiro do modelo (por exemplo, "yolo11n.pt").
  • dados: Caminho para um ficheiro YAML que define o conjunto de dados (por exemplo, "coco8.yaml").
  • imgsz: O tamanho da imagem de entrada, como um único número inteiro ou uma tupla.
  • metade: Ativar a inferência FP16 para um melhor desempenho.
  • int8: Ativar a quantização INT8 para dispositivos de borda.
  • dispositivo: Especificar o dispositivo de cálculo (por exemplo, "cpu", "cuda:0").
  • verboso: Controla o nível de detalhe do registo. Para obter uma lista completa de argumentos, consulte a secção Argumentos.
📅C riado há 1 ano ✏️ Atualizado há 2 dias

Comentários