7.1 KiB
comments | description | keywords |
---|---|---|
true | Apprenez comment profiler la vitesse et l'exactitude de YOLOv8 à travers divers formats d'exportation ; obtenez des insights sur les métriques mAP50-95, accuracy_top5 et plus. | Ultralytics, YOLOv8, benchmarking, profilage de vitesse, profilage de précision, mAP50-95, accuracy_top5, ONNX, OpenVINO, TensorRT, formats d'exportation YOLO |
Benchmarking de Modèles avec Ultralytics YOLO
Introduction
Une fois votre modèle entraîné et validé, l'étape logique suivante est d'évaluer ses performances dans divers scénarios du monde réel. Le mode benchmark dans Ultralytics YOLOv8 répond à cet objectif en fournissant un cadre robuste pour évaluer la vitesse et l'exactitude de votre modèle sur une gamme de formats d'exportation.
Pourquoi le Benchmarking est-il Crucial ?
- Décisions Éclairées : Obtenez des insights sur les arbitrages entre la vitesse et l'exactitude.
- Allocation des Ressources : Comprenez comment les différents formats d'exportation se comportent sur différents matériels.
- Optimisation : Découvrez quel format d'exportation offre la meilleure performance pour votre cas d'utilisation spécifique.
- Efficacité des Coûts : Utilisez les ressources matérielles plus efficacement en vous basant sur les résultats des benchmarks.
Mesures Clés en Mode Benchmark
- mAP50-95 : Pour la détection d'objets, la segmentation et l'estimation de pose.
- accuracy_top5 : Pour la classification d'images.
- Temps d'Inférence : Temps pris pour chaque image en millisecondes.
Formats d'Exportation Supportés
- ONNX : Pour une performance optimale sur CPU.
- TensorRT : Pour une efficacité maximale sur GPU.
- OpenVINO : Pour l'optimisation du matériel Intel.
- CoreML, TensorFlow SavedModel, et Plus : Pour des besoins variés de déploiement.
!!! astuce "Conseil"
* Exportez vers ONNX ou OpenVINO pour un gain de vitesse CPU jusqu'à 3x.
* Exportez vers TensorRT pour un gain de vitesse GPU jusqu'à 5x.
Exemples d'Utilisation
Exécutez les benchmarks YOLOv8n sur tous les formats d'exportation supportés, y compris ONNX, TensorRT, etc. Consultez la section Arguments ci-dessous pour une liste complète des arguments d'exportation.
!!! Example "Exemple"
=== "Python"
```python
from ultralytics.utils.benchmarks import benchmark
# Benchmark sur GPU
benchmark(model='yolov8n.pt', data='coco8.yaml', imgsz=640, half=False, device=0)
```
=== "CLI"
```bash
yolo benchmark model=yolov8n.pt data='coco8.yaml' imgsz=640 half=False device=0
```
Arguments
Des arguments tels que model
, data
, imgsz
, half
, device
et verbose
offrent aux utilisateurs la flexibilité d'ajuster précisément les benchmarks à leurs besoins spécifiques et de comparer facilement les performances de différents formats d'exportation.
Clé | Valeur | Description |
---|---|---|
model |
None |
chemin vers le fichier modèle, par ex. yolov8n.pt, yolov8n.yaml |
data |
None |
chemin vers le YAML référençant le dataset de benchmarking (sous l'étiquette val ) |
imgsz |
640 |
taille de l'image comme scalaire ou liste (h, w), par ex. (640, 480) |
half |
False |
quantification FP16 |
int8 |
False |
quantification INT8 |
device |
None |
appareil sur lequel exécuter, par ex. appareil cuda=0 ou device=0,1,2,3 ou device=cpu |
verbose |
False |
ne pas continuer en cas d'erreur (bool), ou seuil de plancher val (float) |
Formats d'Exportation
Les benchmarks tenteront de s'exécuter automatiquement sur tous les formats d'exportation possibles ci-dessous.
Format | Argument format |
Modèle | Métadonnées | Arguments |
---|---|---|---|---|
PyTorch | - | yolov8n.pt |
✅ | - |
TorchScript | torchscript |
yolov8n.torchscript |
✅ | imgsz , optimize |
ONNX | onnx |
yolov8n.onnx |
✅ | imgsz , half , dynamic , simplify , opset |
OpenVINO | openvino |
yolov8n_openvino_model/ |
✅ | imgsz , half |
TensorRT | engine |
yolov8n.engine |
✅ | imgsz , half , dynamic , simplify , workspace |
CoreML | coreml |
yolov8n.mlpackage |
✅ | imgsz , half , int8 , nms |
TF SavedModel | saved_model |
yolov8n_saved_model/ |
✅ | imgsz , keras |
TF GraphDef | pb |
yolov8n.pb |
❌ | imgsz |
TF Lite | tflite |
yolov8n.tflite |
✅ | imgsz , half , int8 |
TF Edge TPU | edgetpu |
yolov8n_edgetpu.tflite |
✅ | imgsz |
TF.js | tfjs |
yolov8n_web_model/ |
✅ | imgsz |
PaddlePaddle | paddle |
yolov8n_paddle_model/ |
✅ | imgsz |
ncnn | ncnn |
yolov8n_ncnn_model/ |
✅ | imgsz , half |
Consultez les détails complets sur export
dans la page Export.