Điểm chuẩn mô hình với Ultralytics YOLO
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: Để tối ưu CPU hiệu năng
- TensorRT: Cho tối đa GPU hiệu quả
- OpenVINO: Đối với Intel Tối ưu hóa phần cứng
- 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 cho tối đa 3x CPU Speedup.
- Xuất sang TensorRT cho tối đa 5x GPU Speedup.
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ụ
Lập luận
Các đối số như model
, data
, imgsz
, half
, device
và verbose
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 và .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" cho nhiều -GPU Thiết lập. |
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 , int8 , 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 |
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.
FAQ
Làm cách nào để đánh giá điểm chuẩn của tôi YOLOv8 Hiệu suất của mô hình bằng cách sử dụng Ultralytics?
Ultralytics YOLOv8 cung cấp chế độ Điểm chuẩn để đánh giá hiệu suất mô hình của bạn trên các định dạng xuất khác nhau. Chế độ này cung cấp thông tin chi tiết về các số liệu chính như Độ chính xác trung bình trung bình (mAP50-95), độ chính xác và thời gian suy luận tính bằng mili giây. Để chạy điểm chuẩn, bạn có thể sử dụng một trong hai Python hoặc CLI Lệnh. Ví dụ: để điểm chuẩn trên một GPU:
Ví dụ
Để biết thêm chi tiết về các đối số chuẩn, hãy truy cập phần Đối số .
Lợi ích của việc xuất khẩu là gì YOLOv8 mô hình cho các định dạng khác nhau?
Xuất khẩu YOLOv8 mô hình đến các định dạng khác nhau như ONNX, TensorRTvà OpenVINO Cho phép bạn tối ưu hóa hiệu suất dựa trên môi trường triển khai của mình. Chẳng hạn:
- ONNX: Cung cấp lên đến 3x CPU Speedup.
- TensorRT: Ưu đãi lên đến 5x GPU Speedup.
- OpenVINO: Tối ưu hóa cụ thể cho Intel phần cứng. Các định dạng này nâng cao cả tốc độ và độ chính xác của các mô hình của bạn, làm cho chúng hiệu quả hơn cho các ứng dụng trong thế giới thực khác nhau. Truy cập trang Xuất để biết chi tiết đầy đủ.
Tại sao điểm chuẩn lại quan trọng trong việc đánh giá YOLOv8 Mô hình?
Điểm chuẩn của bạn YOLOv8 Mô hình là điều cần thiết vì nhiều lý do:
- Quyết định sáng suốt: Hiểu được sự đánh đổi giữa tốc độ và độ chính xác.
- Phân bổ nguồn lực: Đánh giá hiệu suất trên các tùy chọn phần cứng khác nhau.
- Tối ưu hóa: Xác định định dạng xuất nào cung cấp hiệu suất tốt nhất cho các trường hợp sử dụng cụ thể.
- Hiệu quả chi phí: Tối ưu hóa việc sử dụng phần cứng dựa trên kết quả điểm chuẩn. Các chỉ số chính như mAP50-95, độ chính xác Top 5 và thời gian suy luận giúp thực hiện các đánh giá này. Tham khảo phần Chỉ số chính để biết thêm thông tin.
Những định dạng xuất nào được hỗ trợ bởi YOLOv8, và lợi thế của chúng là gì?
YOLOv8 Hỗ trợ nhiều định dạng xuất khác nhau, mỗi định dạng được điều chỉnh cho các trường hợp sử dụng và phần cứng cụ thể:
- ONNX: Tốt nhất cho CPU hiệu năng.
- TensorRT: Lý tưởng cho GPU hiệu quả.
- OpenVINO: Tối ưu hóa cho Intel phần cứng.
- CoreML & TensorFlow: Hữu ích cho iOS và các ứng dụng ML nói chung. Để biết danh sách đầy đủ các định dạng được hỗ trợ và lợi thế tương ứng của chúng, hãy xem phần Định dạng xuất được hỗ trợ .
Tôi có thể sử dụng những đối số nào để tinh chỉnh YOLOv8 Điểm chuẩn?
Khi chạy điểm chuẩn, một số đối số có thể được tùy chỉnh để phù hợp với nhu cầu cụ thể:
- mẫu: Đường dẫn đến tệp mô hình (ví dụ: "yolov8n.pt").
- dữ liệu: Đường dẫn đến tệp YAML xác định tập dữ liệu (ví dụ: "coco8.yaml").
- IMGSZ: Kích thước hình ảnh đầu vào, dưới dạng một số nguyên hoặc một bộ dữ liệu.
- nửa: Bật suy luận FP16 để có hiệu suất tốt hơn.
- INT8: Kích hoạt lượng tử hóa INT8 cho các thiết bị biên.
- thiết bị: Chỉ định thiết bị tính toán (ví dụ: "cpu", "cuda:0").
- dài dòng: Kiểm soát mức độ chi tiết ghi nhật ký. Để biết danh sách đầy đủ các đối số, hãy tham khảo phần Đối số .
Đã tạo 2023-11-12, Cập nhật 2024-07-04
Tác giả: glenn-jocher (18), Burhan-Q (3), RizwanMunawar (1), Laughing-q (1), maianumerosky (1)