İçeriğe geç

ONNX YOLOv8 Modelleri için Dışa Aktarma

Genellikle, görüntü işleme modellerini dağıtırken hem esnek hem de birden çok platformla uyumlu bir model biçimine ihtiyacınız vardır.

İhracat Ultralytics YOLOv8 modellerini ONNX biçimine dönüştürmek dağıtımı kolaylaştırır ve çeşitli ortamlarda optimum performans sağlar. Bu kılavuz size YOLOv8 modellerinizi nasıl kolayca ONNX formatına dönüştürebileceğinizi ve gerçek dünya uygulamalarında ölçeklenebilirliklerini ve etkinliklerini nasıl artırabileceğinizi gösterecektir.

ONNX ve ONNX Çalışma Zamanı

ONNXAçılımı Open Neural Network Exchange (Açık Sinir Ağı Değişimi) olan Microsoft , başlangıçta Facebook ve tarafından geliştirilen bir topluluk projesidir. ONNX 'un devam eden gelişimi IBM, Amazon (AWS aracılığıyla) ve Google gibi çeşitli kuruluşlar tarafından desteklenen ortak bir çabadır. Proje, makine öğrenimi modellerini farklı yapay zeka çerçeveleri ve donanımları arasında kullanılmalarına izin verecek şekilde temsil etmek üzere tasarlanmış açık bir dosya formatı oluşturmayı amaçlamaktadır.

ONNX modeller farklı çerçeveler arasında sorunsuz bir şekilde geçiş yapmak için kullanılabilir. Örneğin, PyTorch adresinde eğitilen bir derin öğrenme modeli ONNX formatına aktarılabilir ve ardından kolayca TensorFlow adresine aktarılabilir.

ONNX

Alternatif olarak, ONNX modelleri ONNX Runtime ile kullanılabilir. ONNX Runtime, PyTorch, TensorFlow, TFLite, scikit-learn, vb. gibi çerçevelerle uyumlu makine öğrenimi modelleri için çok yönlü bir çapraz platform hızlandırıcıdır.

ONNX Runtime, donanıma özgü yeteneklerden yararlanarak ONNX modellerinin yürütülmesini optimize eder. Bu optimizasyon, modellerin CPU'lar, GPU'lar ve özel hızlandırıcılar dahil olmak üzere çeşitli donanım platformlarında verimli ve yüksek performansla çalışmasını sağlar.

ONNX  ONNX Runtime ile

İster bağımsız olarak ister ONNX Runtime ile birlikte kullanılsın, ONNX makine öğrenimi modeli dağıtımı ve uyumluluğu için esnek bir çözüm sunar.

ONNX Modellerinin Temel Özellikleri

ONNX 'un çeşitli formatları işleme yeteneği aşağıdaki temel özelliklere bağlanabilir:

  • Ortak Model Gösterimi: ONNX ortak bir dizi operatör (konvolüsyonlar, katmanlar vb.) ve standart bir veri formatı tanımlar. Bir model ONNX formatına dönüştürüldüğünde, mimarisi ve ağırlıkları bu ortak gösterime çevrilir. Bu tekdüzelik, modelin ONNX destekleyen herhangi bir çerçeve tarafından anlaşılabilmesini sağlar.

  • Versiyonlama ve Geriye Dönük Uyumluluk: ONNX , operatörleri için bir versiyonlama sistemi sürdürmektedir. Bu, standart geliştikçe bile eski sürümlerde oluşturulan modellerin kullanılabilir kalmasını sağlar. Geriye dönük uyumluluk, modellerin hızla eskimesini önleyen çok önemli bir özelliktir.

  • Grafik Tabanlı Model Gösterimi: ONNX modelleri hesaplama grafikleri olarak temsil eder. Bu grafik tabanlı yapı, düğümlerin işlemleri veya hesaplamaları temsil ettiği ve kenarların aralarında akan tensörleri temsil ettiği makine öğrenimi modellerini temsil etmenin evrensel bir yoludur. Bu format, modelleri grafik olarak da temsil eden çeşitli çerçevelere kolayca uyarlanabilir.

  • Araçlar ve Ekosistem: ONNX çevresinde model dönüştürme, görselleştirme ve optimizasyona yardımcı olan zengin bir araç ekosistemi bulunmaktadır. Bu araçlar, geliştiricilerin ONNX modelleriyle çalışmasını ve modelleri farklı çerçeveler arasında sorunsuz bir şekilde dönüştürmesini kolaylaştırır.

Yaygın Kullanımı ONNX

Nasıl dışa aktarılacağına geçmeden önce YOLOv8 modellerine ONNX formatında, nerede olduğuna bir göz atalım ONNX modeller genellikle kullanılır.

CPU Dağıtım

ONNX modelleri, ONNX Runtime ile uyumlulukları nedeniyle genellikle CPU'lara dağıtılır. Bu çalışma zamanı CPU yürütme için optimize edilmiştir. Çıkarım hızını önemli ölçüde artırır ve gerçek zamanlı CPU dağıtımlarını mümkün kılar.

Desteklenen Dağıtım Seçenekleri

ONNX modelleri genellikle CPU'larda kullanılırken, aşağıdaki platformlarda da kullanılabilirler:

  • GPU Hızlandırma: ONNX , özellikle NVIDIA CUDA olmak üzere GPU hızlandırmayı tamamen destekler. Bu, yüksek hesaplama gücü gerektiren görevler için NVIDIA GPU'larda verimli yürütme sağlar.

  • ve Mobil Cihazlar: ONNX uç ve mobil cihazlara kadar uzanır, cihaz üzerinde ve gerçek zamanlı çıkarım senaryoları için mükemmeldir. Hafiftir ve uç donanımla uyumludur.

  • Web Tarayıcıları: ONNX doğrudan web tarayıcılarında çalışarak etkileşimli ve dinamik web tabanlı yapay zeka uygulamalarına güç sağlayabilir.

YOLOv8 Modellerini Dışa Aktarma ONNX

YOLOv8 modellerini ONNX formatına dönüştürerek model uyumluluğunu ve dağıtım esnekliğini artırabilirsiniz.

Kurulum

Gerekli paketi yüklemek için çalıştırın:

Kurulum

# Install the required package for YOLOv8
pip install ultralytics

Kurulum süreciyle ilgili ayrıntılı talimatlar ve en iyi uygulamalar için YOLOv8 Kurulum kılavuzumuza göz atın. YOLOv8 için gerekli paketleri yüklerken herhangi bir zorlukla karşılaşırsanız, çözümler ve ipuçları için Ortak Sorunlar kılavuz umuza başvurun.

Kullanım

Kullanım talimatlarına geçmeden önce, Ultralytics tarafından sunulanYOLOv8 model yelpazesine göz attığınızdan emin olun. Bu, proje gereksinimleriniz için en uygun modeli seçmenize yardımcı olacaktır.

Kullanım

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO("yolov8n.pt")

# Export the model to ONNX format
model.export(format="onnx")  # creates 'yolov8n.onnx'

# Load the exported ONNX model
onnx_model = YOLO("yolov8n.onnx")

# Run inference
results = onnx_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLOv8n PyTorch model to ONNX format
yolo export model=yolov8n.pt format=onnx  # creates 'yolov8n.onnx'

# Run inference with the exported model
yolo predict model=yolov8n.onnx source='https://ultralytics.com/images/bus.jpg'

Dışa aktarma işlemi hakkında daha fazla bilgi için, dışa aktarma ile ilgiliUltralytics dokümantasyon sayfasını ziyaret edin.

Dışa Aktarılan YOLOv8 ONNX Modellerini Dağıtma

Ultralytics YOLOv8 modellerinizi ONNX formatına başarıyla aktardıktan sonra, bir sonraki adım bu modelleri çeşitli ortamlara dağıtmaktır. ONNX modellerinizi dağıtmaya ilişkin ayrıntılı talimatlar için aşağıdaki kaynaklara göz atın:

Özet

Bu kılavuzda, Ultralytics YOLOv8 modellerinin çeşitli platformlarda birlikte çalışabilirliğini ve performansını artırmak için ONNX formatına nasıl aktarılacağını öğrendiniz. Ayrıca ONNX Runtime ve ONNX dağıtım seçenekleriyle tanıştınız.

Kullanım hakkında daha fazla bilgi için ONNX resmi belgelerini ziyaret edin.

Ayrıca, diğer Ultralytics YOLOv8 entegrasyonları hakkında daha fazla bilgi edinmek isterseniz, entegrasyon kılavuzu sayfamızı ziyaret edin. Orada çok sayıda faydalı kaynak ve bilgi bulacaksınız.

SSS

YOLOv8 modellerini Ultralytics kullanarak ONNX formatına nasıl aktarabilirim?

YOLOv8 modellerinizi Ultralytics kullanarak ONNX formatına aktarmak için aşağıdaki adımları izleyin:

Kullanım

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO("yolov8n.pt")

# Export the model to ONNX format
model.export(format="onnx")  # creates 'yolov8n.onnx'

# Load the exported ONNX model
onnx_model = YOLO("yolov8n.onnx")

# Run inference
results = onnx_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLOv8n PyTorch model to ONNX format
yolo export model=yolov8n.pt format=onnx  # creates 'yolov8n.onnx'

# Run inference with the exported model
yolo predict model=yolov8n.onnx source='https://ultralytics.com/images/bus.jpg'

Daha fazla ayrıntı için ihracat belgelerini ziyaret edin.

YOLOv8 modellerini dağıtmak için ONNX Runtime kullanmanın avantajları nelerdir?

YOLOv8 modellerini dağıtmak için ONNX Runtime'ı kullanmak çeşitli avantajlar sunar:

  • Platformlar arası uyumluluk: ONNX Runtime Windows, macOS ve Linux gibi çeşitli platformları destekleyerek modellerinizin farklı ortamlarda sorunsuz çalışmasını sağlar.
  • Donanım hızlandırma: ONNX Çalışma zamanı, CPU'lar, GPU'lar ve özel hızlandırıcılar için donanıma özgü optimizasyonlardan yararlanarak yüksek performanslı çıkarım sağlayabilir.
  • Çerçeve birlikte çalışabilirliği: PyTorch veya TensorFlow gibi popüler çerçevelerde eğitilen modeller kolayca ONNX formatına dönüştürülebilir ve ONNX Runtime kullanılarak çalıştırılabilir.

ONNX Runtime belgelerini kontrol ederek daha fazla bilgi edinin.

ONNX adresine aktarılan YOLOv8 modelleri için hangi dağıtım seçenekleri mevcuttur?

YOLOv8 ONNX adresine aktarılan modeller, aşağıdakiler de dahil olmak üzere çeşitli platformlara dağıtılabilir:

  • CPU'lar: Optimize edilmiş CPU çıkarımı için ONNX Runtime'dan yararlanma.
  • GPU'lar: Yüksek performanslı GPU hızlandırma için NVIDIA CUDA adresinden yararlanma.
  • cihazlar: Gerçek zamanlı, cihaz üzerinde çıkarım için uç ve mobil cihazlarda hafif modeller çalıştırma.
  • Web tarayıcıları: Etkileşimli web tabanlı uygulamalar için modelleri doğrudan web tarayıcılarında çalıştırma.

Daha fazla bilgi için model dağıtım seçeneklerine ilişkin kılavuzumuzu inceleyin.

Neden Ultralytics YOLOv8 modelleri için ONNX formatını kullanmalıyım?

Ultralytics YOLOv8 modelleri için ONNX formatını kullanmak çok sayıda avantaj sağlar:

  • Birlikte çalışabilirlik: ONNX , modellerin farklı makine öğrenimi çerçeveleri arasında sorunsuz bir şekilde aktarılmasını sağlar.
  • Performans Optimizasyonu: ONNX Çalışma zamanı, donanıma özgü optimizasyonları kullanarak model performansını artırabilir.
  • Esneklik: ONNX çeşitli dağıtım ortamlarını destekleyerek aynı modeli farklı platformlarda değişiklik yapmadan kullanabilmenizi sağlar.

YOLOv8 modellerinin ONNX adresine ihraç edilmesine ilişkin kapsamlı kılavuza bakın.

YOLOv8 modellerini ONNX adresine aktarırken sorunları nasıl giderebilirim?

YOLOv8 modellerini ONNX adresine aktarırken, uyumsuz bağımlılıklar veya desteklenmeyen işlemler gibi yaygın sorunlarla karşılaşabilirsiniz. Bu sorunları gidermek için:

  1. Gerekli bağımlılıkların doğru sürümünün yüklü olduğunu doğrulayın.
  2. Desteklenen operatörler ve özellikler için resmi ONNX belgelerini kontrol edin.
  3. İpuçları için hata mesajlarını inceleyin ve Ultralytics Yaygın Sorunlar kılavuzuna başvurun.

Sorunlar devam ederse, daha fazla yardım için Ultralytics destek birimiyle iletişime geçin.



Oluşturma 2024-01-25, Güncelleme 2024-07-05
Yazarlar: glenn-jocher (6), abirami-vina (1)

Yorumlar