Aferição de modelos com Ultralytics YOLO
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: Benchmark Ultralytics YOLO11 Models | Como comparar o desempenho do modelo em diferentes hardwares?
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
- mAP50-95: Para deteção de objectos, segmentação e estimativa de pose.
- accuracy_top5: Para classificação de imagens.
- Tempo de inferência: Tempo necessário para cada imagem em milissegundos.
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
Argumentos
Argumentos como model
, data
, imgsz
, half
, device
, verbose
e format
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. |
format |
'' |
Aferir o modelo num único formato de exportação, ou seja format=onnx |
Formatos de exportação
Os testes de referência tentarão ser executados automaticamente em todos os formatos de exportação possíveis listados abaixo. Em alternativa, pode executar os testes de referência para um formato específico, utilizando a opção format
que aceita qualquer um dos formatos mencionados abaixo.
Formato | format Argumento |
Modelo | Metadados | Argumentos |
---|---|---|---|---|
PyTorch | - | yolo11n.pt |
✅ | - |
TorchScript | torchscript |
yolo11n.torchscript |
✅ | imgsz , optimize , nms , batch |
ONNX | onnx |
yolo11n.onnx |
✅ | imgsz , half , dynamic , simplify , opset , nms , batch |
OpenVINO | openvino |
yolo11n_openvino_model/ |
✅ | imgsz , half , dynamic , int8 , nms , batch , data |
TensorRT | engine |
yolo11n.engine |
✅ | imgsz , half , dynamic , simplify , workspace , int8 , nms , batch , data |
CoreML | coreml |
yolo11n.mlpackage |
✅ | imgsz , half , int8 , nms , batch |
TF SavedModel | saved_model |
yolo11n_saved_model/ |
✅ | imgsz , keras , int8 , nms , batch |
TF GraphDef | pb |
yolo11n.pb |
❌ | imgsz , batch |
TF Leve | tflite |
yolo11n.tflite |
✅ | imgsz , half , int8 , nms , batch , data |
TF Borda TPU | edgetpu |
yolo11n_edgetpu.tflite |
✅ | imgsz |
TF.js | tfjs |
yolo11n_web_model/ |
✅ | imgsz , half , int8 , nms , 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 , data |
RKNN | rknn |
yolo11n_rknn_model/ |
✅ | imgsz , batch , name |
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
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 aumentam 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 nos resultados de benchmark.
As principais métricas, como mAP50-95, precisão Top-5 e tempo de inferência, ajudam a efetuar estas 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.