İçeriğe geç

YOLO26 Modelleri için ONNX Dışa Aktarımı

Çoğu zaman, bilgisayar görüşü modellerini dağıtırken, hem esnek hem de birden çok platformla uyumlu bir model formatına ihtiyacınız olacaktır.

Ultralytics YOLO26 modellerini ONNX formatına aktarmak, dağıtımı kolaylaştırır ve çeşitli ortamlarda optimum performans sağlar. Bu kılavuz, YOLO26 modellerinizi ONNX'e kolayca dönüştürmeyi ve gerçek dünya uygulamalarında ölçeklenebilirliklerini ve etkinliğini artırmayı gösterecektir.

ONNX ve ONNX Çalışma Zamanı

Open Neural Network Exchange anlamına gelen ONNX, ilk olarak Facebook ve Microsoft tarafından geliştirilen bir topluluk projesidir. ONNX'in devam eden geliştirilmesi, 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ı AI çerçeveleri ve donanımları arasında kullanılmalarına olanak sağlayacak şekilde temsil etmek için tasarlanmış açık bir dosya formatı oluşturmayı amaçlamaktadır.

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

Derin öğrenme çerçeveleri arasında ONNX taşınabilirliği

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ısıdır.

ONNX Runtime, donanım özelliklerine ö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 çapraz platform çıkarım hızlandırma

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

ONNX Modellerinin Temel Özellikleri

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

  • Ortak Model Temsili: ONNX, ortak bir operatör kümesi (evrişimler, katmanlar vb. gibi) 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 temsile çevrilir. Bu tekdüzelik, modelin ONNX'i destekleyen herhangi bir çerçeve tarafından anlaşılabileceğini garanti eder.

  • Sürüm Oluşturma ve Geriye Dönük Uyumluluk: ONNX, operatörleri için bir sürüm oluşturma sistemi sürdürür. 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 önemli bir özelliktir.

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

  • Araçlar ve Ekosistem: Model dönüştürme, görselleştirme ve optimizasyona yardımcı olan ONNX etrafında 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.

ONNX'in Yaygın Kullanımı

YOLO26 modellerini ONNX formatına nasıl aktaracağımıza geçmeden önce, ONNX modellerinin genellikle nerede kullanıldığına bir göz atalım.

CPU Dağıtımı

ONNX modelleri, ONNX Çalışma Zamanı ile uyumlulukları nedeniyle genellikle CPU'larda dağıtılır. Bu çalışma zamanı, CPU yürütmesi 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 dağıtılabilir:

  • GPU Hızlandırması: ONNX, özellikle NVIDIA CUDA olmak üzere GPU hızlandırmasını tam olarak destekler. Bu, yüksek işlem gücü gerektiren görevler için NVIDIA GPU'larda verimli yürütme sağlar.

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

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

YOLO26 Modellerini ONNX'e Aktarma

YOLO26 modellerini ONNX formatına dönüştürerek model uyumluluğunu ve dağıtım esnekliğini artırabilirsiniz. Ultralytics YOLO26, modelinizin farklı platformlardaki performansını önemli ölçüde artırabilecek basit bir dışa aktarma süreci sunar.

Kurulum

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

Kurulum

# Install the required package for YOLO26
pip install ultralytics

Kurulum süreciyle ilgili ayrıntılı talimatlar ve en iyi uygulamalar için YOLO26 Kurulum kılavuzumuza göz atın. YOLO26 için gerekli paketleri kurarken herhangi bir zorlukla karşılaşırsanız, çözümler ve ipuçları için Sık Karşılaşılan Sorunlar kılavuzumuza başvurun.

Kullanım

Kullanım talimatlarına geçmeden önce, Ultralytics tarafından sunulan YOLO26 modelleri yelpazesini incelediğinizden emin olun. Bu, proje gereksinimleriniz için en uygun modeli seçmenize yardımcı olacaktır.

Kullanım

from ultralytics import YOLO

# Load the YOLO26 model
model = YOLO("yolo26n.pt")

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

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

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

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

Dışa Aktarma Argümanları

YOLO26 modelinizi ONNX formatına dışa aktarırken, belirli dağıtım ihtiyaçlarınız için optimize etmek üzere süreci çeşitli argümanlar kullanarak özelleştirebilirsiniz:

ArgümanTürVarsayılanAçıklama
formatstr'onnx'Çeşitli dağıtım ortamlarıyla uyumluluğu tanımlayan, dışa aktarılan modelin hedef formatı.
imgszint veya tuple640Model girişi için istenen görüntü boyutu. Kare görüntüler için bir tamsayı veya bir demet olabilir (height, width) belirli boyutlar için.
halfboolFalseFP16 (yarı duyarlıklı) nicelemeyi etkinleştirir, model boyutunu küçültür ve desteklenen donanımda çıkarımı potansiyel olarak hızlandırır.
dynamicboolFalseDeğişken görüntü boyutlarını işlemede esnekliği artırarak dinamik giriş boyutlarına olanak tanır.
simplifyboolTrueModel grafiğini şunlarla basitleştirir: onnxslim, potansiyel olarak performansı ve uyumluluğu artırır.
opsetintNoneFarklı ONNX ayrıştırıcıları ve çalışma zamanlarıyla uyumluluk için ONNX opset sürümünü belirtir. Ayarlanmazsa, desteklenen en son sürümü kullanır.
nmsboolFalseDoğru ve verimli detect etme işlem sonrası için gerekli olan Non-Maximum Suppression'ı (NMS) ekler.
batchint1Dışa aktarma modeli toplu çıkarım boyutunu veya dışa aktarılan modelin aynı anda işleyeceği maksimum görüntü sayısını belirtir. predict modu.
devicestrNoneDışa aktarma için cihazı belirtir: GPU (device=0), CPU (device=cpu), Apple silikon için MPS (device=mps).

Dışa aktarma süreci hakkında daha fazla bilgi için Ultralytics'in dışa aktarma hakkındaki dokümantasyon sayfasını ziyaret edin.

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

Ultralytics YOLO26 modellerinizi ONNX formatına başarıyla dışa aktardıktan sonra, bir sonraki adım bu modelleri çeşitli ortamlarda dağıtmaktır. ONNX modellerinizi dağıtma hakkında ayrıntılı talimatlar için aşağıdaki kaynaklara göz atın:

  • ONNX Runtime Python API Belgeleri: Bu kılavuz, ONNX Runtime kullanılarak ONNX modellerini yüklemek ve çalıştırmak için temel bilgiler sağlar.

  • Uç Cihazlarda Dağıtım: ONNX modellerini uçta dağıtmaya ilişkin farklı örnekler için bu doküman sayfasına göz atın.

  • GitHub'da ONNX Eğitimleri: Farklı senaryolarda ONNX modellerini kullanmanın ve uygulamanın çeşitli yönlerini kapsayan kapsamlı eğitimlerden oluşan bir koleksiyon.

  • Triton Inference Server: Yüksek performanslı, ölçeklenebilir dağıtımlar için ONNX modellerinizi NVIDIA'nın Triton Inference Server'ı ile nasıl dağıtabileceğinizi öğrenin.

Özet

Bu kılavuzda, Ultralytics YOLO26 modellerini ONNX formatına nasıl dışa aktaracağınızı, böylece çeşitli platformlarda birlikte çalışabilirliklerini ve performanslarını artıracağınızı öğrendiniz. Ayrıca ONNX Runtime ve ONNX dağıtım seçenekleriyle de tanıştınız.

ONNX dışa aktarımı, Ultralytics YOLO26 tarafından desteklenen birçok dışa aktarım formatından sadece biridir ve modellerinizi neredeyse her ortamda dağıtmanıza olanak tanır. Belirli ihtiyaçlarınıza bağlı olarak, maksimum GPU performansı için TensorRT veya Apple cihazları için CoreML gibi diğer dışa aktarım seçeneklerini de keşfetmek isteyebilirsiniz.

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

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

SSS

Ultralytics kullanarak YOLO26 modellerini ONNX formatına nasıl aktarırım?

YOLO26 modellerinizi Ultralytics kullanarak ONNX formatına dışa aktarmak için şu adımları izleyin:

Kullanım

from ultralytics import YOLO

# Load the YOLO26 model
model = YOLO("yolo26n.pt")

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

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

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

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

Daha fazla ayrıntı için dışa aktarma belgelerini ziyaret edin.

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

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

  • Çapraz platform uyumluluğu: ONNX Runtime, Windows, macOS ve Linux gibi çeşitli platformları destekleyerek modellerinizin farklı ortamlarda sorunsuz çalışmasını sağlar.
  • Donanım hızlandırması: ONNX Runtime, yüksek performanslı çıkarım sağlayarak CPU'lar, GPU'lar ve özel hızlandırıcılar için donanıma özgü optimizasyonlardan yararlanabilir.
  • Çerçeve birlikte çalışabilirliği: PyTorch veya TensorFlow gibi popüler çerçevelerde eğitilmiş modeller, ONNX formatına kolayca dönüştürülebilir ve ONNX Runtime kullanılarak çalıştırılabilir.
  • Performans optimizasyonu: ONNX Runtime, yerel PyTorch modellerine kıyasla 3 kata kadar CPU hızlandırması sağlayarak GPU kaynaklarının sınırlı olduğu dağıtım senaryoları için idealdir.

ONNX Runtime belgelerini inceleyerek daha fazla bilgi edinin.

ONNX'e aktarılan YOLO26 modelleri için hangi dağıtım seçenekleri mevcuttur?

ONNX'e aktarılan YOLO26 modelleri, aşağıdakiler dahil çeşitli platformlarda dağıtılabilir:

  • CPU'lar: Optimize edilmiş CPU çıkarımı için ONNX Runtime'ı kullanma.
  • GPU'lar: Yüksek performanslı GPU hızlandırması için NVIDIA CUDA'dan yararlanma.
  • Uç 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.
  • Bulut hizmetleri: Ölçeklenebilir çıkarım için ONNX formatını destekleyen bulut platformlarında dağıtım.

Daha fazla bilgi için model dağıtım seçenekleri kılavuzumuzu inceleyin.

Ultralytics YOLO26 modelleri için neden ONNX formatını kullanmalıyım?

Ultralytics YOLO26 modelleri için ONNX formatını kullanmak sayısız fayda 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 Runtime, 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 kullanmanızı sağlar.
  • Standardizasyon: ONNX, endüstri genelinde yaygın olarak desteklenen, uzun vadeli uyumluluğu sağlayan standartlaştırılmış bir format sağlar.

YOLO26 modellerini ONNX'e dışa aktarma hakkındaki kapsamlı kılavuza başvurun.

YOLO26 modellerini ONNX'e aktarırken karşılaşılan sorunları nasıl giderebilirim?

YOLO26 modellerini ONNX'e dışa 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ğundan emin olun.
  2. Desteklenen operatörler ve özellikler için resmi ONNX dokümantasyonuna bakın.
  3. İpuçları için hata mesajlarını inceleyin ve Ultralytics Sık Karşılaşılan Sorunlar kılavuzuna başvurun.
  4. Farklı dışa aktarma argümanları kullanmayı deneyin, örneğin simplify=True veya şunu ayarlayarak opset sürüm.
  5. Dinamik giriş boyutu sorunları için şunu ayarlayın: dynamic=True dışa aktarma sırasında.

Sorunlar devam ederse, daha fazla yardım için Ultralytics desteğiyle iletişime geçin.



📅 2 yıl önce oluşturuldu ✏️ 7 gün önce güncellendi
glenn-jocherlakshanthadlakshanthadUltralyticsAssistantMatthewNoyceabirami-vina

Yorumlar