İçeriğe geç

ile Model Kıyaslama Ultralytics YOLO

Ultralytics YOLO ekosistem ve entegrasyonlar

Giriş

Modeliniz eğitildikten ve doğrulandıktan sonra, bir sonraki mantıklı adım, çeşitli gerçek dünya senaryolarındaki performansını değerlendirmektir. Ultralytics YOLOv8 adresindeki Benchmark modu, modelinizin hızını ve doğruluğunu çeşitli dışa aktarma biçimlerinde değerlendirmek için sağlam bir çerçeve sağlayarak bu amaca hizmet eder.



İzle: Ultralytics Modlar Eğitimi: Benchmark

Benchmarking Neden Önemlidir?

  • Bilgilendirilmiş Kararlar: Hız ve doğruluk arasındaki dengeler hakkında içgörü kazanın.
  • Kaynak Tahsisi: Farklı dışa aktarma formatlarının farklı donanımlarda nasıl performans gösterdiğini anlayın.
  • Optimizasyon: Özel kullanım durumunuz için hangi dışa aktarma formatının en iyi performansı sunduğunu öğrenin.
  • Maliyet Verimliliği: Kıyaslama sonuçlarına göre donanım kaynaklarını daha verimli kullanın.

Benchmark Modunda Temel Metrikler

  • mAP50-95: Nesne algılama, segmentasyon ve poz tahmini için.
  • accuracy_top5: Görüntü sınıflandırması için.
  • Çıkarım Süresi: Milisaniye cinsinden her görüntü için 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ı: Farklı dağıtım ihtiyaçları için.

İpucu

  • 3x'e kadar CPU hızlandırma için ONNX veya OpenVINO adresine aktarın.
  • 5x'e kadar GPU hızlandırma için TensorRT adresine aktarın.

Kullanım Örnekleri

ONNX, TensorRT vb. dahil olmak üzere desteklenen tüm dışa aktarma biçimlerinde YOLOv8n karşılaştırmalarını çalıştırın. Dışa aktarma argümanlarının tam listesi için aşağıdaki Argümanlar bölümüne bakın.

Örnek

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

Argümanlar

Aşağıdaki gibi argümanlar model, data, imgsz, half, deviceve verbose kullanıcılara kıyaslamaları kendi özel ihtiyaçlarına göre ince 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. Her ikisini de kabul eder .pt ve .yaml formatlar, örn, "yolov8n.pt" önceden eğitilmiş modeller veya yapılandırma dosyaları için.
data None Kıyaslama için veri kümesini tanımlayan, tipik olarak doğrulama verileri için yollar ve ayarlar içeren bir YAML dosyasının yolu. Örnek: "coco8.yaml".
imgsz 640 Model için girdi görüntü boyutu. Kare görüntüler için tek bir tamsayı veya bir tuple olabilir (width, height) kare olmayanlar için, örn, (640, 480).
half False FP16 (yarım hassasiyet) çıkarımını etkinleştirerek bellek kullanımını azaltır ve muhtemelen uyumlu donanımlarda hızı artırır. Kullanım half=True etkinleştirmek için.
int8 False Desteklenen cihazlarda daha fazla optimize edilmiş performans için INT8 nicelemeyi etkinleştirir, özellikle uç cihazlar için kullanışlıdır. Ayarla int8=True kullanmak için.
device None Kıyaslama için hesaplama cihaz(lar)ını tanımlar, örneğin "cpu", "cuda:0"veya aşağıdaki gibi bir cihaz listesi "cuda:0,1" çokluGPU kurulumları için.
verbose False Günlük çıktısındaki ayrıntı düzeyini kontrol eder. Boolean bir değer; ayarla verbose=True ayrıntılı günlükler için veya eşikleme hataları için bir float.

Dışa Aktarma Biçimleri

Benchmark'lar aşağıdaki tüm olası dışa aktarma formatlarında otomatik olarak çalıştırılmaya çalışılacaktır.

Biçim format Tartışma Model Metadata Argümanlar
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 Kenar 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

Tamamı görün export detaylar İhracat Sayfa.

SSS

Ultralytics kullanarak YOLOv8 modelimin performansını nasıl kıyaslayabilirim?

Ultralytics YOLOv8 modelinizin farklı dışa aktarma biçimlerindeki performansını değerlendirmek için bir Kıyaslama modu sunar. Bu mod, Ortalama Ortalama Hassasiyet (mAP50-95), doğruluk ve milisaniye cinsinden çıkarım süresi gibi temel metrikler hakkında bilgi sağlar. Kıyaslamaları çalıştırmak için Python veya CLI komutlarını kullanabilirsiniz. Örneğin, bir GPU üzerinde kıyaslama yapmak için :

Örnek

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

Kıyaslama argümanları hakkında daha fazla bilgi için Argümanlar bölümünü ziyaret edin.

YOLOv8 modellerini farklı formatlara aktarmanın faydaları nelerdir?

YOLOv8 modellerini ONNX, TensorRT ve OpenVINO gibi farklı formatlara aktarmak, dağıtım ortamınıza göre performansı optimize etmenize olanak tanır. Örneğin:

  • ONNX: 3 kata kadar CPU hızlandırma sağlar.
  • TensorRT: 5 kata kadar GPU hızlandırma sunar.
  • OpenVINO: Intel donanımı için özel olarak optimize edilmiştir. Bu formatlar modellerinizin hem hızını hem de doğruluğunu artırarak çeşitli gerçek dünya uygulamaları için daha verimli hale getirir. Tüm ayrıntılar için Dışa Aktarma sayfasını ziyaret edin.

YOLOv8 modellerinin değerlendirilmesinde kıyaslama neden çok önemlidir?

YOLOv8 modellerinizi kıyaslamak birkaç nedenden dolayı çok önemlidir:

  • Bilinçli Kararlar: Hız ve doğruluk arasındaki dengeleri anlayın.
  • Kaynak Tahsisi: Farklı donanım seçenekleri arasında performansı ölçün.
  • Optimizasyon: Belirli kullanım durumları için hangi dışa aktarma formatının en iyi performansı sunduğunu belirleyin.
  • Maliyet Verimliliği: Kıyaslama sonuçlarına göre donanım kullanımını optimize edin. mAP50-95, Top-5 doğruluğu ve çıkarım süresi gibi temel metrikler bu değerlendirmelerin yapılmasına yardımcı olur. Daha fazla bilgi için Anahtar Metrikler bölümüne bakın.

YOLOv8 tarafından hangi dışa aktarma formatları destekleniyor ve bunların avantajları nelerdir?

YOLOv8 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 makine öğrenimi uygulamaları için kullanışlıdır. Desteklenen formatların tam listesi ve avantajları için Desteklenen Dışa Aktarma Formatları bölümüne göz atın.

YOLOv8 kıyaslamalarıma ince ayar yapmak için hangi argümanları kullanabilirim?

Kıyaslamaları çalıştırırken, çeşitli argümanlar özel ihtiyaçlara uyacak şekilde özelleştirilebilir:

  • model: Model dosyasının yolu (örneğin, "yolov8n.pt").
  • veri: Veri kümesini tanımlayan bir YAML dosyasının yolu (örneğin, "coco8.yaml").
  • imgsz: Tek bir tamsayı veya bir çift olarak girdi görüntü boyutu.
  • yarım: Daha iyi performans için FP16 çıkarımını etkinleştirin.
  • int8: Kenar aygıtları için INT8 nicelemeyi etkinleştirin.
  • aygıt: Hesaplama cihazını belirtin (örneğin, "cpu", "cuda:0").
  • verbose: Günlük kaydı ayrıntı düzeyini kontrol edin. Bağımsız değişkenlerin tam listesi için Bağımsız Değişkenler bölümüne bakın.


Oluşturuldu 2023-11-12, Güncellendi 2024-07-04
Yazarlar: glenn-jocher (18), Burhan-Q (3), RizwanMunawar (1), Laughing-q (1), maianumerosky (1)

Yorumlar