Đánh giá hiệu năng mô hình với Ultralytics YOLO
Trực quan hóa Benchmark
Tải lại trình duyệt
Bạn có thể cần tải lại trang để xem đồ thị một cách chính xác do các vấn đề tiềm ẩn về cookie.
Giới thiệu
Sau khi mô hình của bạn được huấn luyện và xác thực, 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ế độ Benchmark trong Ultralytics YOLO11 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: Điểm chuẩn các Mô hình Ultralytics YOLO11 | Làm thế nào để So sánh Hiệu suất Mô hình trên các Phần cứng Khác nhau?
Tại sao Benchmark lại Quan trọng?
- Đưa ra quyết định sáng suốt: Hiểu rõ sự đánh đổi giữa tốc độ và độ chính xác.
- Phân bổ nguồn lực: Hiểu cách các định dạng xuất khác nhau hoạt động 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 các tài nguyên phần cứng dựa trên kết quả đánh giá hiệu năng.
Các Số liệu Chính trong Chế độ Benchmark
- mAP50-95: Dành cho nhận diện đối tượng, phân đoạn và ước tính tư thế.
- accuracy_top5: Dành cho phân loại ảnh.
- Thời gian suy luận: Thời gian cần thiết cho mỗi ả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: Để đạt hiệu quả GPU tối đa
- OpenVINO: Để tối ưu hóa phần cứng Intel
- CoreML, TensorFlow SavedModel và hơn thế nữa: Cho các 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 3 lần.
- Xuất sang TensorRT để tăng tốc GPU lên đến 5 lần.
Ví dụ sử dụng
Chạy các bài kiểm tra hiệu năng YOLO11n 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 Arguments (Đối số) bên dưới để có danh sách đầy đủ các đối số xuất.
Ví dụ
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo11n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
# Benchmark specific export format
benchmark(model="yolo11n.pt", data="coco8.yaml", imgsz=640, format="onnx")
yolo benchmark model=yolo11n.pt data='coco8.yaml' imgsz=640 half=False device=0
# Benchmark specific export format
yolo benchmark model=yolo11n.pt data='coco8.yaml' imgsz=640 format=onnx
Các đối số
Các đối số như model
, data
, imgsz
, half
, device
, verbose
và format
cung cấp cho người dùng sự linh hoạt để tinh chỉnh các bài kiểm tra hiệu năng cho phù hợp với nhu cầu cụ thể của họ và dễ dàng so sánh hiệu suất của các định dạng xuất khác nhau.
Khóa | Giá trị mặc định | Mô tả |
---|---|---|
model |
None |
Chỉ định đường dẫn đến tệp mô hình. Chấp nhận cả hai định dạng .pt và .yaml , ví dụ: "yolo11n.pt" cho các mô hình hoặc tệp cấu hình đã được huấn luyện trước. |
data |
None |
Đường dẫn đến tệp YAML xác định bộ dữ liệu để kiểm tra hiệu năng, 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 ảnh đầu vào cho mô hình. Có thể là một số nguyên duy nhất cho ảnh vuông hoặc một bộ (width, height) cho ảnh không vuông, ví dụ: (640, 480) . |
half |
False |
Cho phép suy luận FP16 (độ chính xác nửa), 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. Sử dụng half=True để bậ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. Đặt int8=True để sử dụng. |
device |
None |
Xác định (các) thiết bị tính toán để kiểm tra hiệu năng, chẳng hạn như "cpu" hoặc "cuda:0" . |
verbose |
False |
Kiểm soát mức độ chi tiết trong đầu ra nhật ký. Thiết lập verbose=True để biết nhật ký chi tiết. |
format |
'' |
Đánh giá điểm chuẩn mô hình trên một định dạng xuất duy nhất. ví dụ: format=onnx |
Định dạng xuất
Các bài kiểm tra chuẩn sẽ cố gắng chạy tự động trên tất cả các định dạng xuất khả thi được liệt kê bên dưới. Ngoài ra, bạn có thể chạy các bài kiểm tra chuẩn cho một định dạng cụ thể bằng cách sử dụng format
đối số, chấp nhận bất kỳ định dạng nào được đề cập bên dưới.
Định dạng | format Đối số |
Mô hình | Metadata (Siêu dữ liệu) | Các đối số |
---|---|---|---|---|
PyTorch | - | yolo11n.pt |
✅ | - |
TorchScript | torchscript |
yolo11n.torchscript |
✅ | imgsz , half , dynamic , optimize , nms , batch , device |
ONNX | onnx |
yolo11n.onnx |
✅ | imgsz , half , dynamic , simplify , opset , nms , batch , device |
OpenVINO | openvino |
yolo11n_openvino_model/ |
✅ | imgsz , half , dynamic , int8 , nms , batch , data , fraction , device |
TensorRT | engine |
yolo11n.engine |
✅ | imgsz , half , dynamic , simplify , workspace , int8 , nms , batch , data , fraction , device |
CoreML | coreml |
yolo11n.mlpackage |
✅ | imgsz , half , int8 , nms , batch , device |
TF SavedModel | saved_model |
yolo11n_saved_model/ |
✅ | imgsz , keras , int8 , nms , batch , device |
TF GraphDef | pb |
yolo11n.pb |
❌ | imgsz , batch , device |
TF Lite | tflite |
yolo11n.tflite |
✅ | imgsz , half , int8 , nms , batch , data , fraction , device |
TF Edge TPU | edgetpu |
yolo11n_edgetpu.tflite |
✅ | imgsz , device |
TF.js | tfjs |
yolo11n_web_model/ |
✅ | imgsz , half , int8 , nms , batch , device |
PaddlePaddle | paddle |
yolo11n_paddle_model/ |
✅ | imgsz , batch , device |
MNN | mnn |
yolo11n.mnn |
✅ | imgsz , batch , int8 , half , device |
NCNN | ncnn |
yolo11n_ncnn_model/ |
✅ | imgsz , half , batch , device |
IMX500 | imx |
yolo11n_imx_model/ |
✅ | imgsz , int8 , data , fraction , device |
RKNN | rknn |
yolo11n_rknn_model/ |
✅ | imgsz , batch , name , device |
Xem đầy đủ export
chi tiết trong Xuất trang.
Câu hỏi thường gặp
Làm cách nào để benchmark hiệu suất mô hình YOLO11 của tôi bằng Ultralytics?
Ultralytics YOLO11 cung cấp chế độ Benchmark (Kiểm tra hiệu năng) để đá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ư mean Average Precision (độ chính xác 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 kiểm tra hiệu năng, bạn có thể sử dụng lệnh Python hoặc CLI. Ví dụ: để kiểm tra hiệu năng trên GPU:
Ví dụ
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo11n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
yolo benchmark model=yolo11n.pt data='coco8.yaml' imgsz=640 half=False device=0
Để biết thêm chi tiết về các đối số kiểm tra hiệu năng, hãy truy cập phần Arguments (Đối số).
Những lợi ích của việc xuất các mô hình YOLO11 sang các định dạng khác nhau là gì?
Xuất các mô hình YOLO11 sang các định dạng khác nhau như ONNX, TensorRT và 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. Ví dụ:
- ONNX: Cung cấp tốc độ CPU nhanh hơn tới 3 lần.
- TensorRT: Cung cấp tốc độ GPU nhanh hơn tới 5 lần.
- OpenVINO: Được tối ưu hóa đặc biệt cho phần cứng Intel.
Các định dạng này nâng cao cả tốc độ và độ chính xác của mô hình, làm cho chúng hiệu quả hơn cho các ứng dụng thực tế khác nhau. Truy cập trang Xuất để biết đầy đủ chi tiết.
Tại sao việc đánh giá hiệu năng lại rất quan trọng trong việc thẩm định các mô hình YOLO11?
Việc benchmark các mô hình YOLO11 của bạn là rất cần thiết vì một số lý do:
- Informed Decisions (Quyết định sáng suốt): Hiểu rõ sự đánh đổi giữa tốc độ và độ chính xác.
- Resource Allocation (Phân bổ tài nguyên): Đá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 mang lại 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 số liệu chính như mAP50-95, độ chính xác Top-5 và thời gian suy luận giúp đưa ra các đánh giá này. Tham khảo phần Các số liệu chính để biết thêm thông tin.
YOLO11 hỗ trợ những định dạng xuất nào và ưu điểm của chúng là gì?
YOLO11 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 phần cứng và trường hợp sử dụng cụ thể:
- ONNX: Tốt nhất cho hiệu suất CPU.
- TensorRT: Lý tưởng cho hiệu quả GPU.
- OpenVINO: Được tối ưu hóa cho phần cứng Intel.
- CoreML & TensorFlow: Hữu ích cho iOS và các ứng dụng ML nói chung.
Để có danh sách đầy đủ các định dạng được hỗ trợ và các ưu điểm tương ứng của chúng, hãy xem phần Các định dạng xuất được hỗ trợ.
Tôi có thể sử dụng những đối số nào để tinh chỉnh các bài kiểm tra hiệu năng YOLO11 của mình?
Khi chạy benchmark, một số đối số có thể được tùy chỉnh để phù hợp với các nhu cầu cụ thể:
- model: Đường dẫn đến tệp mô hình (ví dụ: "yolo11n.pt").
- data: Đường dẫn đến tệp YAML xác định bộ dữ liệu (ví dụ: "coco8.yaml").
- imgsz: Kích thước hình ảnh đầu vào, có thể là một số nguyên duy nhất hoặc một bộ giá trị.
- half: 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.
- device: Chỉ định thiết bị tính toán (ví dụ: "cpu", "cuda:0").
- verbose: Kiểm soát mức độ chi tiết của nhật ký.
Để có danh sách đầy đủ các đối số, hãy tham khảo phần Đối số.