模型基准Ultralytics YOLO
导言
一旦您的模型经过训练和验证,下一个合理的步骤就是评估其在各种实际场景中的性能。Ultralytics YOLOv8 中的 "基准 "模式可实现这一目的,它提供了一个强大的框架,用于评估模型在各种导出格式下的速度和准确性。
观看: Ultralytics 模式教程:基准测试
基准测试为何至关重要?
- 明智决策:深入了解速度与准确性之间的权衡。
- 资源分配:了解不同导出格式在不同硬件上的性能。
- 优化:了解哪种导出格式能为您的特定用例提供最佳性能。
- 成本效益:根据基准测试结果,更有效地利用硬件资源。
基准模式下的关键指标
- mAP50-95:用于物体检测、分割和姿态估计。
- accuracy_top5:用于图像分类。
- 推理时间:每个图像所需的时间,以毫秒为单位。
支持的导出格式
- ONNX:优化 CPU 性能
- TensorRT:最大限度地提高 GPU 效率
- OpenVINO:用于英特尔硬件优化
- CoreML,TensorFlow SavedModel , 以及更多:满足各种部署需求。
提示
- 导出到ONNX 或OpenVINO ,CPU 速度可提高 3 倍。
- 导出到TensorRT ,GPU 速度可提高 5 倍。
使用示例
在所有支持的导出格式(包括ONNX,TensorRT 等)上运行YOLOv8n 基准。有关导出参数的完整列表,请参阅下面的 "参数 "部分。
示例
论据
诸如 model
, data
, imgsz
, half
, device
和 verbose
用户可以灵活地根据自己的具体需求对基准进行微调,并轻松比较不同导出格式的性能。
钥匙 | 默认值 | 说明 |
---|---|---|
model |
None |
指定模型文件的路径。同时接受 .pt 和 .yaml 格式,例如 "yolov8n.pt" 预训练模型或配置文件。 |
data |
None |
定义基准测试数据集的 YAML 文件的路径,通常包括验证数据的路径和设置。例如 "coco8.yaml" . |
imgsz |
640 |
模型的输入图像大小。对于正方形图像,可以是单个整数,也可以是一个元组 (width, height) 为非正方形,例如 (640, 480) . |
half |
False |
启用 FP16(半精度)推理,在兼容硬件上可减少内存使用量并提高速度。使用 half=True 以启用。 |
int8 |
False |
激活 INT8 量化,进一步优化受支持设备的性能,尤其适用于边缘设备。设置 int8=True 使用。 |
device |
None |
定义用于基准测试的计算设备,例如 "cpu" , "cuda:0" 或设备列表,如 "cuda:0,1" 用于多 GPU 设置。 |
verbose |
False |
控制日志输出的详细程度。布尔值;设置 verbose=True 查看详细日志,或使用浮点数查看阈值错误。 |
导出格式
基准测试将尝试自动运行以下所有可能的导出格式。
格式 | format 论据 |
模型 | 元数据 | 论据 |
---|---|---|---|---|
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 轻型 | tflite |
yolov8n.tflite |
✅ | imgsz , half , int8 , batch |
TF 边缘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 |
查看全文 export
中的详细信息 出口 page.
创建于 2023-11-12,更新于 2024-04-27
作者:glenn-jocher(12),Burhan-Q(1),RizwanMunawar(1),Laughing-q(1),maianumerosky(1)