Bỏ để qua phần nội dung

Điểm chuẩn mô hình với Ultralytics YOLO

Ultralytics YOLO Hệ sinh thái và tích hợp

Giới thiệu

Khi mô hình của bạn được đào tạo và xác nhận, bước hợp lý tiếp theo là đánh giá hiệu suất của nó trong các tình huống thực tế khác nhau. Chế độ điểm chuẩn trong Ultralytics YOLOv8 Phục vụ mục đích này bằng cách cung cấp một khuôn khổ mạnh mẽ để đánh giá tốc độ và độ chính xác của mô hình của bạn trên một loạt các định dạng xuất.



Xem: Ultralytics Chế độ Hướng dẫn: Điểm chuẩn

Tại sao điểm chuẩn lại quan trọng?

  • Quyết định sáng suốt: Có được thông tin chi tiết về sự đánh đổi giữa tốc độ và độ chính xác.
  • Phân bổ nguồn lực: Hiểu các định dạng xuất khác nhau hoạt động như thế nào trên các phần cứng khác nhau.
  • Tối ưu hóa: Tìm hiểu định dạng xuất nào mang lại hiệu suất tốt nhất cho trường hợp sử dụng cụ thể của bạn.
  • Hiệu quả chi phí: Sử dụng hiệu quả hơn tài nguyên phần cứng dựa trên kết quả điểm chuẩn.

Các chỉ số chính trong chế độ điểm chuẩn

  • mAP50-95: Để phát hiện đối tượng, phân đoạn và ước tính tư thế.
  • accuracy_top5: Để phân loại hình ảnh.
  • Thời gian suy luận: Thời gian thực hiện cho mỗi hình ảnh tính bằng mili giây.

Các định dạng xuất được hỗ trợ

  • ONNX: Để có hiệu suất CPU tối ưu
  • TensorRT: Để có hiệu quả GPU tối đa
  • OpenVINO: Để tối ưu hóa phần cứng Intel
  • CoreML, TensorFlow SavedModelvà hơn thế nữa: Dành cho nhu cầu triển khai đa dạng.

Mẹo

  • Xuất sang ONNX hoặc OpenVINO để tăng tốc CPU lên đến 3x.
  • Xuất sang TensorRT để tăng tốc GPU lên đến 5x.

Ví dụ sử dụng

Chạy YOLOv8n Điểm chuẩn trên tất cả các định dạng xuất được hỗ trợ, bao gồm: ONNX, TensorRT v.v. Xem phần Đối số bên dưới để biết danh sách đầy đủ các đối số xuất.

Ví dụ

from ultralytics.utils.benchmarks import benchmark

# Benchmark on GPU
benchmark(model='yolov8n.pt', data='coco8.yaml', imgsz=640, half=False, device=0)
yolo benchmark model=yolov8n.pt data='coco8.yaml' imgsz=640 half=False device=0

Lập luận

Các đối số như model, data, imgsz, half, deviceverbose Cung cấp cho người dùng sự linh hoạt để tinh chỉnh các điểm chuẩn theo nhu cầu cụ thể của họ và so sánh hiệu suất của các định dạng xuất khác nhau một cách dễ dàng.

Chìa khoá Giá trị mặc định Sự miêu tả
model None Chỉ định đường dẫn đến tệp mô hình. Chấp nhận cả hai .pt.yaml định dạng, ví dụ: "yolov8n.pt" cho các mô hình được đào tạo trước hoặc tệp cấu hình.
data None Đường dẫn đến tệp YAML xác định tập dữ liệu để đo điểm chuẩn, thường bao gồm đường dẫn và cài đặt cho dữ liệu xác thực. Ví dụ: "coco8.yaml".
imgsz 640 Kích thước hình ảnh đầu vào cho mô hình. Có thể là một số nguyên duy nhất cho hình ảnh vuông hoặc bộ dữ liệu (width, height) đối với không vuông, ví dụ: (640, 480).
half False Cho phép suy luận FP16 (nửa chính xác), giảm mức sử dụng bộ nhớ và có thể tăng tốc độ trên phần cứng tương thích. Dùng half=True để kích hoạt.
int8 False Kích hoạt lượng tử hóa INT8 để tối ưu hóa hơn nữa hiệu suất trên các thiết bị được hỗ trợ, đặc biệt hữu ích cho các thiết bị biên. Cài int8=True để sử dụng.
device None Xác định (các) thiết bị tính toán để đo điểm chuẩn, chẳng hạn như "cpu", "cuda:0"hoặc danh sách các thiết bị như "cuda:0,1" để thiết lập nhiều GPU.
verbose False Kiểm soát mức độ chi tiết trong việc ghi nhật ký đầu ra. Giá trị boolean; cài verbose=True để biết nhật ký chi tiết hoặc phao cho các lỗi ngưỡng.

Định dạng xuất

Điểm chuẩn sẽ cố gắng chạy tự động trên tất cả các định dạng xuất có thể có bên dưới.

Định dạng format Lý lẽ Mẫu Siêu dữ liệu Lập luận
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 Cạnh 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

Xem đầy đủ export Chi tiết trong Xuất khẩu trang.



Đã tạo 2023-11-12, Cập nhật 2024-04-27
Tác giả: glenn-jocher (12), Burhan-Q (1), RizwanMunawar (1), Laughing-q (1), maianumerosky (1)

Ý kiến