Ultralytics YOLO를 사용한 모델 벤치마킹
벤치마크 시각화
브라우저 새로고침
쿠키 문제로 인해 그래프가 올바르게 표시되지 않으면 페이지를 새로 고쳐야 할 수 있습니다.
소개
모델을 훈련하고 검증했다면, 다음 단계는 다양한 실제 시나리오에서 모델의 성능을 평가하는 것입니다. Ultralytics YOLO11의 벤치마크 모드는 다양한 내보내기 형식에서 모델의 속도와 정확도를 평가할 수 있는 강력한 프레임워크를 제공하여 이러한 목적을 수행합니다.
참고: Ultralytics YOLO11 모델 벤치마킹 | 다양한 하드웨어에서 모델 성능을 비교하는 방법은 무엇입니까?
벤치마킹이 중요한 이유는 무엇인가요?
- 정보에 입각한 결정: 속도와 정확도 간의 균형에 대한 통찰력을 얻으세요.
- 리소스 할당: 다양한 내보내기 형식이 서로 다른 하드웨어에서 어떻게 작동하는지 이해하세요.
- 최적화: 특정 사용 사례에 가장 적합한 성능을 제공하는 내보내기 형식을 알아보세요.
- 비용 효율성: 벤치마크 결과를 기반으로 하드웨어 리소스를 보다 효율적으로 사용하세요.
벤치마크 모드의 주요 지표
지원되는 내보내기 형식
- ONNX: 최적의 CPU 성능을 위해
- TensorRT: 최대 GPU 효율성을 위해
- OpenVINO: Intel 하드웨어 최적화를 위해
- CoreML, TensorFlow SavedModel 등: 다양한 배포 요구 사항을 위해
팁
- 최대 3배의 CPU 속도 향상을 위해 ONNX 또는 OpenVINO로 내보내세요.
- 최대 5배의 GPU 속도 향상을 위해 TensorRT로 내보내세요.
사용 예시
ONNX, TensorRT 등을 포함하여 지원되는 모든 내보내기 형식에서 YOLO11n 벤치마크를 실행합니다. 전체 내보내기 인수 목록은 아래 인수 섹션을 참조하세요.
예시
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
인수
다음과 같은 인수 model
, data
, imgsz
, half
, device
, verbose
및 format
사용자는 특정 요구 사항에 맞춰 벤치마크를 세밀하게 조정하고 다양한 내보내기 형식의 성능을 쉽게 비교할 수 있습니다.
키 | 기본값 | 설명 |
---|---|---|
model |
None |
모델 파일의 경로를 지정합니다. "와" 형식을 모두 허용합니다. .pt 및 .yaml 형식(예: "yolo11n.pt" )을 사용하여 사전 훈련된 모델 또는 구성 파일을 지정할 수 있습니다. |
data |
None |
벤치마킹을 위한 데이터세트를 정의하는 YAML 파일의 경로입니다. 일반적으로 경로 및 설정을 포함합니다. 유효성 검사 데이터. 예: "coco8.yaml" . |
imgsz |
640 |
모델의 입력 이미지 크기입니다. 정사각형 이미지의 경우 단일 정수이거나 튜플이 될 수 있습니다( (width, height) 예: (640, 480) . |
half |
False |
) half=True FP16(반정밀도) 추론을 활성화하여 메모리 사용량을 줄이고 호환되는 하드웨어에서 속도를 향상시킬 수 있습니다. 활성화하려면 '을 사용하세요. |
int8 |
False |
INT8 양자화를 활성화하여 지원되는 장치, 특히 에지 장치에서 성능을 더욱 최적화합니다. 사용하려면 '을 설정하세요. int8=True 을 사용하세요. |
device |
None |
벤치마킹을 위한 컴퓨팅 장치를 정의합니다( "cpu" 또는 "cuda:0" . |
verbose |
False |
로깅 출력의 세부 정보 수준을 제어합니다. 설정 verbose=True 자세한 로그를 위해 |
format |
'' |
단일 내보내기 형식으로 모델을 벤치마킹합니다. 예: format=onnx |
내보내기 형식
벤치마크는 아래 나열된 가능한 모든 내보내기 형식에서 자동으로 실행을 시도합니다. 또는 다음을 사용하여 특정 형식에 대한 벤치마크를 실행할 수 있습니다. format
인수이며, 아래에 언급된 형식 중 하나를 허용합니다.
형식 | format 인수 |
모델 | 메타데이터 | 인수 |
---|---|---|---|---|
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 |
전체 export
세부 정보는 내보내기 페이지를 참조하세요.
FAQ
Ultralytics를 사용하여 YOLO11 모델의 성능을 어떻게 벤치마크할 수 있습니까?
Ultralytics YOLO11은 다양한 내보내기 형식에서 모델의 성능을 평가하기 위한 벤치마크 모드를 제공합니다. 이 모드는 평균 정밀도(mAP50-95), 정확도 및 추론 시간(밀리초)과 같은 주요 지표에 대한 통찰력을 제공합니다. 벤치마크를 실행하려면 python 또는 CLI 명령을 사용할 수 있습니다. 예를 들어 GPU에서 벤치마크하려면 다음과 같이 하십시오.
예시
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
벤치마크 인수에 대한 자세한 내용은 인수 섹션을 참조하십시오.
YOLO11 모델을 다양한 형식으로 내보낼 때의 이점은 무엇입니까?
ONNX, TensorRT 및 OpenVINO와 같은 다양한 형식으로 YOLO11 모델을 내보내면 배포 환경에 따라 성능을 최적화할 수 있습니다. 예를 들면 다음과 같습니다.
- ONNX: CPU 속도를 최대 3배까지 향상시킵니다.
- TensorRT: GPU 속도를 최대 5배까지 향상시킵니다.
- OpenVINO: Intel 하드웨어에 특화되어 최적화되었습니다.
이러한 형식을 사용하면 모델의 속도와 정확도가 향상되어 다양한 실제 애플리케이션에서 더욱 효율적으로 사용할 수 있습니다. 자세한 내용은 내보내기 페이지를 방문하십시오.
YOLO11 모델을 평가할 때 벤치마킹이 중요한 이유는 무엇입니까?
YOLO11 모델 벤치마킹은 다음과 같은 여러 가지 이유로 중요합니다.
- 정보에 입각한 결정: 속도와 정확성 간의 균형점을 파악합니다.
- 리소스 할당: 다양한 하드웨어 옵션에서 성능을 측정합니다.
- 최적화: 특정 사용 사례에 가장 적합한 성능을 제공하는 내보내기 형식을 결정합니다.
- 비용 효율성: 벤치마크 결과를 기반으로 하드웨어 사용을 최적화합니다.
mAP50-95, Top-5 정확도 및 추론 시간과 같은 주요 지표는 이러한 평가를 수행하는 데 도움이 됩니다. 자세한 내용은 주요 지표 섹션을 참조하십시오.
YOLO11에서 지원하는 내보내기 형식은 무엇이며, 그 장점은 무엇입니까?
YOLO11은 특정 하드웨어 및 사용 사례에 맞게 조정된 다양한 내보내기 형식을 지원합니다.
- ONNX: CPU 성능에 가장 적합합니다.
- TensorRT: GPU 효율성에 이상적입니다.
- OpenVINO: Intel 하드웨어에 최적화되었습니다.
- CoreML & TensorFlow: iOS 및 일반 ML 애플리케이션에 유용합니다.
지원되는 형식과 각 형식의 장점에 대한 전체 목록은 지원되는 내보내기 형식 섹션을 확인하세요.
YOLO11 벤치마크를 미세 조정하는 데 사용할 수 있는 인수는 무엇입니까?
벤치마크를 실행할 때 특정 요구 사항에 맞게 여러 인수를 사용자 지정할 수 있습니다.
- model: 모델 파일의 경로입니다 (예: "yolo11n.pt").
- data: 데이터 세트를 정의하는 YAML 파일의 경로입니다 (예: "coco8.yaml").
- imgsz: 입력 이미지 크기이며, 단일 정수 또는 튜플로 지정할 수 있습니다.
- half: 더 나은 성능을 위해 FP16 추론을 활성화합니다.
- int8: 에지 장치에 대해 INT8 양자화를 활성화합니다.
- device: 연산 장치를 지정합니다 (예: "cpu", "cuda:0").
- verbose: 로깅 상세 수준을 제어합니다.
전체 인수 목록은 인수 섹션을 참조하십시오.