Comparación de modelos con Ultralytics YOLO
Introducción
Una vez entrenado y validado tu modelo, el siguiente paso lógico es evaluar su rendimiento en diversos escenarios del mundo real. El modo Benchmark de Ultralytics YOLOv8 sirve para este propósito, ya que proporciona un marco sólido para evaluar la velocidad y la precisión de tu modelo en una serie de formatos de exportación.
Observa: Ultralytics Tutorial de Modos: Prueba comparativa
¿Por qué es crucial la evaluación comparativa?
- Decisiones fundamentadas: Obtén información sobre las compensaciones entre velocidad y precisión.
- Asignación de recursos: Comprende cómo funcionan los distintos formatos de exportación en los distintos equipos.
- Optimización: Aprende qué formato de exportación ofrece el mejor rendimiento para tu caso de uso específico.
- Eficiencia de costes: Haz un uso más eficiente de los recursos de hardware basándote en los resultados de las pruebas comparativas.
Métricas clave en el modo de evaluación comparativa
- mAP50-95: Para detección de objetos, segmentación y estimación de la pose.
- accuracy_top5: Para la clasificación de imágenes.
- Tiempo de inferencia: Tiempo que tarda cada imagen en milisegundos.
Formatos de exportación admitidos
- ONNX: Para un rendimiento óptimo de la CPU
- TensorRT: Para maximizar la eficiencia de la GPU
- OpenVINO: Para la optimización del hardware Intel
- CoreML, TensorFlow SavedModel , y Más: Para diversas necesidades de despliegue.
Consejo
- Exporta a ONNX o OpenVINO para acelerar hasta 3 veces la CPU.
- Exporta a TensorRT para acelerar hasta 5 veces la GPU.
Ejemplos de uso
Ejecuta las pruebas comparativas de YOLOv8n en todos los formatos de exportación admitidos, incluidos ONNX, TensorRT , etc. Consulta la sección Argumentos para ver una lista completa de los argumentos de exportación.
Ejemplo
Argumentos
Argumentos como model
, data
, imgsz
, half
, device
y verbose
proporcionan a los usuarios la flexibilidad necesaria para ajustar los puntos de referencia a sus necesidades específicas y comparar el rendimiento de distintos formatos de exportación con facilidad.
Clave | Valor por defecto | Descripción |
---|---|---|
model |
None |
Especifica la ruta al archivo del modelo. Acepta tanto .pt y .yaml formatos, por ejemplo "yolov8n.pt" para modelos preentrenados o archivos de configuración. |
data |
None |
Ruta a un archivo YAML que define el conjunto de datos para la evaluación comparativa, que suele incluir rutas y configuraciones para los datos de validación. Ejemplo: "coco8.yaml" . |
imgsz |
640 |
El tamaño de la imagen de entrada para el modelo. Puede ser un número entero para imágenes cuadradas o una tupla (width, height) para los no cuadrados, por ejemplo (640, 480) . |
half |
False |
Permite la inferencia FP16 (media precisión), reduciendo el uso de memoria y posiblemente aumentando la velocidad en hardware compatible. Utiliza half=True para activarlo. |
int8 |
False |
Activa la cuantización INT8 para optimizar aún más el rendimiento en los dispositivos compatibles, especialmente útil para los dispositivos de borde. Configura int8=True utilizar. |
device |
None |
Define el dispositivo o dispositivos de cálculo para la evaluación comparativa, como por ejemplo "cpu" , "cuda:0" o una lista de dispositivos como "cuda:0,1" para configuraciones multi-GPU. |
verbose |
False |
Controla el nivel de detalle de la salida de registro. Un valor booleano; establecer verbose=True para los registros detallados o un flotador para los errores de umbral. |
Formatos de exportación
Los Benchmarks intentarán ejecutarse automáticamente en todos los formatos de exportación posibles que se indican a continuación.
Formato | format Argumento |
Modelo | Metadatos | Argumentos |
---|---|---|---|---|
PyTorch | - | yolov8n.pt |
✅ | - |
TorchScript | torchscript |
yolov8n.torchscript |
✅ | imgsz , optimize , batch |
ONNX | onnx |
yolov8n.onnx |
✅ | imgsz , half , dynamic , simplify , opset , batch |
OpenVINO | openvino |
yolov8n_openvino_model/ |
✅ | imgsz , half , int8 , batch |
TensorRT | engine |
yolov8n.engine |
✅ | imgsz , half , dynamic , simplify , workspace , batch |
CoreML | coreml |
yolov8n.mlpackage |
✅ | imgsz , half , int8 , nms , batch |
TF SavedModel | saved_model |
yolov8n_saved_model/ |
✅ | imgsz , keras , int8 , batch |
TF GraphDef | pb |
yolov8n.pb |
❌ | imgsz , batch |
TF Lite | tflite |
yolov8n.tflite |
✅ | imgsz , half , int8 , batch |
TF Arista TPU | edgetpu |
yolov8n_edgetpu.tflite |
✅ | imgsz , batch |
TF.js | tfjs |
yolov8n_web_model/ |
✅ | imgsz , half , int8 , batch |
PaddlePaddle | paddle |
yolov8n_paddle_model/ |
✅ | imgsz , batch |
NCNN | ncnn |
yolov8n_ncnn_model/ |
✅ | imgsz , half , batch |
Ver todo export
detalles en el Exportar página.
Creado 2023-11-12, Actualizado 2024-04-27
Autores: glenn-jocher (12), Burhan-Q (1), RizwanMunawar (1), Laughing-q (1), maianumerosky (1)