Ultralytics YOLO ile Model Kıyaslama
Kıyaslama Görselleştirme
Olası çerez sorunları nedeniyle grafikleri doğru şekilde görüntülemek için sayfayı yenilemen gerekebilir.
Giriş
Modelin eğitilip doğrulandıktan sonra, bir sonraki mantıksal adım onun çeşitli gerçek dünya senaryolarındaki performansını değerlendirmektir. Ultralytics YOLO26 içindeki Kıyaslama (Benchmark) modu, modelinin hızını ve doğruluğunu bir dizi dışa aktarma formatı genelinde değerlendirmek için sağlam bir çerçeve sunarak bu amaca hizmet eder.
Watch: Benchmark Ultralytics YOLO26 Models | How to Compare Model Performance on Different Hardware?
Kıyaslama Neden Çok Önemlidir?
- Bilinçli Kararlar: Hız ve doğruluk arasındaki dengeler hakkında içgörüler kazan.
- Kaynak Tahsisi: Farklı dışa aktarma formatlarının farklı donanımlarda nasıl performans gösterdiğini anla.
- Optimizasyon: Özel kullanım durumun için en iyi performansı hangi dışa aktarma formatının sunduğunu öğren.
- Maliyet Verimliliği: Kıyaslama sonuçlarına dayanarak donanım kaynaklarını daha verimli kullan.
Kıyaslama Modundaki Temel Metrikler
- mAP50-95: Nesne algılama, segmentasyon ve poz tahmini için.
- accuracy_top5: Görüntü sınıflandırma için.
- Çıkarım Süresi: Her görüntü için milisaniye cinsinden geçen süre.
Desteklenen Dışa Aktarma Formatları
- ONNX: Optimum CPU performansı için
- TensorRT: Maksimum GPU verimliliği için
- OpenVINO: Intel donanım optimizasyonu için
- CoreML, TensorFlow SavedModel ve Daha Fazlası: Çeşitli dağıtım ihtiyaçları için.
- 3 kata kadar CPU hız artışı için ONNX veya OpenVINO'ya dışa aktar.
- 5 kata kadar GPU hız artışı için TensorRT'ye dışa aktar.
Kullanım Örnekleri
Eksik paketlerden kaçınmak için kıyaslama yapmadan önce dışa aktarma bağımlılıklarıyla birlikte Ultralytics'i kur.
pip install ultralytics[export]Tüm desteklenen dışa aktarma formatlarında (ONNX, TensorRT, vb.) YOLO26n kıyaslamalarını çalıştır. Dışa aktarma seçeneklerinin tam listesi için aşağıdaki Argümanlar bölümüne bak.
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
# Benchmark specific export format
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, format="onnx")Argümanlar
model, data, imgsz, half, device, verbose ve format gibi argümanlar, kullanıcılara kıyaslamaları kendi özel ihtiyaçlarına göre hassas bir şekilde ayarlama ve farklı dışa aktarma formatlarının performansını kolaylıkla karşılaştırma esnekliği sağlar.
| Anahtar | Varsayılan Değer | Açıklama |
|---|---|---|
model | None | Model dosyasının yolunu belirtir. Hem .pt hem de .yaml formatlarını kabul eder; örneğin, eğitilmiş modeller veya yapılandırma dosyaları için "yolo26n.pt". |
data | None | Kıyaslama için veri kümesini tanımlayan, genellikle doğrulama verileri için yollar ve ayarlar içeren bir YAML dosyasının yolu. Örnek: "coco8.yaml". |
imgsz | 640 | The input image size for the model. Can be a single integer for square images or a tuple (width, height) for non-square, e.g., (640, 480). |
half | False | FP16 (yarım hassasiyetli) çıkarımı etkinleştirir, bellek kullanımını azaltır ve uyumlu donanımlarda hızı artırabilir. Etkinleştirmek için half=True kullan. |
int8 | False | Desteklenen cihazlarda daha optimize performans için INT8 nicemlemeyi (quantization) etkinleştirir, özellikle uç cihazlar için kullanışlıdır. Kullanmak için int8=True olarak ayarla. |
device | None | Kıyaslama için hesaplama cihazını/cihazlarını tanımlar; örneğin "cpu" veya "cuda:0". |
verbose | False | Günlük çıktısındaki ayrıntı düzeyini kontrol eder. Ayrıntılı günlükler için verbose=True olarak ayarla. |
format | '' | Yalnızca belirtilen dışa aktarma formatını kıyaslar (örneğin, format=onnx). Desteklenen her formatı otomatik olarak test etmek için boş bırak. |
Dışa Aktarma Formatları
Kıyaslamalar, aşağıda listelenen tüm olası dışa aktarma formatlarında otomatik olarak çalışmayı deneyecektir. Alternatif olarak, aşağıda belirtilen formatlardan herhangi birini kabul eden format argümanını kullanarak belirli bir format için kıyaslama çalıştırabilirsin.
| Format | format Argümanı | Model | Meta veri | Argümanlar |
|---|---|---|---|---|
| PyTorch | - | yolo26n.pt | ✅ | - |
| TorchScript | torchscript | yolo26n.torchscript | ✅ | imgsz, half, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n.onnx | ✅ | imgsz, half, dynamic, simplify, opset, nms, batch, device |
| OpenVINO | openvino | yolo26n_openvino_model/ | ✅ | imgsz, half, dynamic, int8, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n.engine | ✅ | imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n.mlpackage | ✅ | imgsz, dynamic, half, int8, nms, batch, device |
| TF SavedModel | saved_model | yolo26n_saved_model/ | ✅ | imgsz, keras, int8, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n.pb | ❌ | imgsz, batch, device |
| TF Lite | tflite | yolo26n.tflite | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| TF Edge TPU | edgetpu | yolo26n_edgetpu.tflite | ✅ | imgsz, int8, data, fraction, device |
| TF.js | tfjs | yolo26n_web_model/ | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| PaddlePaddle | paddle | yolo26n_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n.mnn | ✅ | imgsz, batch, int8, half, device |
| NCNN | ncnn | yolo26n_ncnn_model/ | ✅ | imgsz, half, batch, device |
| IMX500 | imx | yolo26n_imx_model/ | ✅ | imgsz, int8, data, fraction, nms, device |
| RKNN | rknn | yolo26n_rknn_model/ | ✅ | imgsz, batch, name, device |
| ExecuTorch | executorch | yolo26n_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n_axelera_model/ | ✅ | imgsz, batch, int8, data, fraction, device |
| DeepX | deepx | yolo26n_deepx_model/ | ✅ | imgsz, int8, data, optimize, device |
Tam export ayrıntıları için Dışa Aktarma sayfasına bak.
SSS
Ultralytics kullanarak YOLO26 modelimin performansını nasıl kıyaslayabilirim?
Ultralytics YOLO26, modelinin performansını farklı dışa aktarma formatlarında değerlendirmek için bir Kıyaslama modu sunar. Bu mod, mean Average Precision (mAP50-95), doğruluk ve milisaniye cinsinden çıkarım süresi gibi temel metrikler hakkında içgörüler sağlar. Kıyaslamaları çalıştırmak için Python veya CLI komutlarını kullanabilirsin. Örneğin, bir GPU üzerinde kıyaslama yapmak için:
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)Kıyaslama argümanları hakkında daha fazla ayrıntı için Argümanlar bölümünü ziyaret et.
YOLO26 modellerini farklı formatlara dışa aktarmanın faydaları nelerdir?
YOLO26 modellerini ONNX, TensorRT ve OpenVINO gibi farklı formatlara dışa aktarmak, performansı dağıtım ortamına göre optimize etmeni sağlar. Örneğin:
- ONNX: 3 kata kadar CPU hız artışı sağlar.
- TensorRT: 5 kata kadar GPU hız artışı sunar.
- OpenVINO: Özellikle Intel donanımı için optimize edilmiştir.
Bu formatlar, modellerinin hem hızını hem de doğruluğunu artırarak onları çeşitli gerçek dünya uygulamaları için daha verimli hale getirir. Tam ayrıntılar için Dışa Aktarma sayfasını ziyaret et.
YOLO26 modellerini değerlendirmede kıyaslama neden çok önemlidir?
YOLO26 modellerini kıyaslamak birkaç nedenden dolayı önemlidir:
- Bilinçli Kararlar: Hız ve doğruluk arasındaki dengeleri anla.
- Kaynak Tahsisi: Farklı donanım seçenekleri genelindeki performansı ölç.
- Optimizasyon: Özel kullanım durumları için hangi dışa aktarma formatının en iyi performansı sunduğunu belirle.
- Maliyet Verimliliği: Kıyaslama sonuçlarına göre donanım kullanımını optimize et.
mAP50-95, Top-5 doğruluğu ve çıkarım süresi gibi temel metrikler bu değerlendirmeleri yapmaya yardımcı olur. Daha fazla bilgi için Kıyaslama Modundaki Temel Metrikler bölümüne başvur.
YOLO26 hangi dışa aktarma formatlarını destekler ve avantajları nelerdir?
YOLO26, her biri belirli donanım ve kullanım durumları için uyarlanmış çeşitli dışa aktarma formatlarını destekler:
- ONNX: CPU performansı için en iyisi.
- TensorRT: GPU verimliliği için idealdir.
- OpenVINO: Intel donanımı için optimize edilmiştir.
- CoreML & TensorFlow: iOS ve genel ML uygulamaları için kullanışlıdır.
Desteklenen formatların tam listesi ve ilgili avantajları için Desteklenen Dışa Aktarma Formatları bölümüne göz at.
YOLO26 kıyaslamalarımı hassas şekilde ayarlamak için hangi argümanları kullanabilirim?
Kıyaslamaları çalıştırırken, özel ihtiyaçlara uyacak şekilde çeşitli argümanlar özelleştirilebilir:
- model: Model dosyasının yolu (örneğin, "yolo26n.pt").
- data: Veri kümesini tanımlayan bir YAML dosyasının yolu (örneğin, "coco8.yaml").
- imgsz: Tek bir tam sayı veya bir demet olarak giriş görüntüsü boyutu.
- half: Daha iyi performans için FP16 çıkarımı etkinleştir.
- int8: Uç cihazlar için INT8 nicemlemeyi etkinleştir.
- device: Hesaplama cihazını belirt (örneğin, "cpu", "cuda:0").
- verbose: Günlük ayrıntı düzeyini kontrol et.
Argümanların tam listesi için Argümanlar bölümüne başvur.