Link to this sectionYOLO26 Modelleri için ONNX Dışa Aktarımı#
~%43 daha hızlı çıkarım.
- Ultralytics YOLO26 modelini ONNX formatına dışa aktarmak, çıkarım hızında %43'e varan bir artış sağlayarak daha hızlı ve daha verimli bir dağıtımı mümkün kılar.
Bilgisayarlı görü modellerini dağıtırken, genellikle hem esnek hem de birden fazla platformla uyumlu bir model formatına ihtiyaç duyarsın.
Ultralytics YOLO26 modellerini ONNX formatına dışa aktarmak, dağıtımı kolaylaştırır ve çeşitli ortamlarda optimum performans sağlar. Bu rehber, YOLO26 modellerini nasıl kolayca ONNX formatına dönüştüreceğini ve gerçek dünya uygulamalarında ölçeklenebilirliklerini ve etkinliklerini nasıl artıracağını gösterecektir.
Watch: Ultralytics YOLO26 vs Ultralytics YOLO11 ONNX Inference Test | ~43% Faster Inference with YOLO26 🚀
Link to this sectionONNX ve ONNX Runtime#
ONNX, which stands for Open Neural Network Exchange, is a community project that Facebook and Microsoft initially developed. The ongoing development of ONNX is a collaborative effort supported by various organizations like IBM, Amazon (through AWS), and Google. The project aims to create an open file format designed to represent machine learning models in a way that allows them to be used across different AI frameworks and hardware.
ONNX modelleri, farklı çerçeveler arasında sorunsuz geçiş yapmak için kullanılabilir. Örneğin, PyTorch ile eğitilmiş bir derin öğrenme modeli ONNX formatına dışa aktarılabilir ve ardından kolayca TensorFlow'a içe aktarılabilir.
Alternatif olarak, ONNX modelleri ONNX Runtime ile birlikte kullanılabilir. ONNX Runtime, PyTorch, TensorFlow, TFLite, scikit-learn vb. çerçevelerle uyumlu, makine öğrenimi modelleri için çok yönlü bir platformlar arası 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.
İster bağımsız olarak ister ONNX Runtime ile birlikte kullanılsın, ONNX makine öğrenimi model dağıtımı ve uyumluluk için esnek bir çözüm sunar.
Link to this sectionONNX Modellerinin Temel Özellikleri#
ONNX'in çeşitli formatları işleme yeteneği, aşağıdaki temel özelliklere atfedilebilir:
-
Ortak Model Temsili: ONNX, ortak bir operatör kümesi (evrişimler, 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 temsile çevrilir. Bu tekdüzelik, modelin ONNX'i destekleyen herhangi bir çerçeve tarafından anlaşılabilmesini sağlar.
-
Sürüm Oluşturma ve Geriye Dönük Uyumluluk: ONNX, operatörleri için bir sürüm 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 çok önemli bir özelliktir.
-
Grafik Tabanlı Model Temsili: ONNX, modelleri hesaplama grafikleri olarak temsil eder. Bu grafik tabanlı yapı, düğümlerin işlemleri veya hesaplamaları, kenarların ise aralarındaki tensör akışını temsil ettiği, makine öğrenimi modellerini temsil etmenin evrensel bir yoludur. Bu format, modelleri grafik olarak temsil eden çeşitli çerçevelere kolayca uyarlanabilir.
-
Araçlar ve Ekosistem: ONNX'in etrafında model dönüştürme, görselleştirme ve optimizasyona yardımcı olan zengin bir araç ekosistemi bulunur. 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.
Link to this sectionONNX'in Yaygın Kullanımı#
YOLO26 modellerini ONNX formatına nasıl dışa aktaracağımıza geçmeden önce, ONNX modellerinin genellikle nerede kullanıldığına bir göz atalım.
Link to this sectionCPU Dağıtımı#
ONNX modelleri, ONNX Runtime ile uyumlulukları nedeniyle genellikle CPU'larda 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.
Link to this sectionDesteklenen Dağıtım Seçenekleri#
ONNX modelleri yaygın olarak CPU'larda kullanılsa da, aşağıdaki platformlarda da dağıtılabilirler:
-
GPU Hızlandırma: ONNX, özellikle NVIDIA CUDA olmak üzere GPU hızlandırmasını tam olarak destekler. Bu, yüksek hesaplama gücü gerektiren görevler için NVIDIA GPU'larda verimli bir yürütme sağlar.
-
Uç ve Mobil Cihazlar: ONNX, uç ve mobil cihazlara kadar uzanır; bu, cihaz üzerinde ve gerçek zamanlı çıkarım senaryoları için mükemmeldir. Hafiftir ve uç donanımlarıyla uyumludur; Snapdragon cihazları için Qualcomm QNN ve Rockchip NPU'ları için RKNN gibi satıcı NPU formatlarının temelini oluşturur.
-
Web Tarayıcıları: ONNX doğrudan web tarayıcılarında çalışabilir ve etkileşimli, dinamik web tabanlı yapay zeka uygulamalarına güç verebilir.
Link to this sectionYOLO26 Modellerini ONNX'e Dışa Aktarma#
YOLO26 modellerini ONNX formatına dönüştürerek model uyumluluğunu ve dağıtım esnekliğini genişletebilirsin. Ultralytics YOLO26, modelinin farklı platformlardaki performansını önemli ölçüde artırabilecek basit bir dışa aktarma süreci sunar.
Link to this sectionKurulum#
Gerekli paketi yüklemek için şunu çalıştır:
# Install the required package for YOLO26
pip install ultralyticsKurulum süreciyle ilgili ayrıntılı talimatlar ve en iyi uygulamalar için YOLO26 Kurulum rehberimize göz at. YOLO26 için gerekli paketleri yüklerken herhangi bir zorlukla karşılaşırsan, çözümler ve ipuçları için Yaygın Sorunlar rehberimize danış.
Link to this sectionKullanım#
Kullanım talimatlarına geçmeden önce, Ultralytics tarafından sunulan YOLO26 modelleri yelpazesine göz atmayı unutma. Bu, proje gereksinimlerin için en uygun modeli seçmene yardımcı olacaktır.
ONNX formatı Dışa Aktar, Tahmin Et ve Doğrula modlarını destekler. Modelini dışa aktar, ardından çıkarım çalıştırmak veya doğruluğunu doğrulamak için dışa aktarılan modeli yükle.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to ONNX format
model.export(format="onnx") # creates 'yolo26n.onnx'
# Export an INT8-quantized ONNX model with calibration data
model.export(format="onnx", int8=True, data="coco8.yaml") # creates 'yolo26n_int8.onnx'from ultralytics import YOLO
# Load the exported ONNX model
model = YOLO("yolo26n.onnx")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Load the exported ONNX model
model = YOLO("yolo26n.onnx")
# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")Link to this sectionDışa Aktarma Argümanları#
YOLO26 modelini ONNX formatına dışa aktarırken, özel dağıtım ihtiyaçların için optimize etmek üzere süreci çeşitli argümanlar kullanarak özelleştirebilirsin:
| Argüman | Tür | Varsayılan | Açıklama |
|---|---|---|---|
format | str | 'onnx' | Dışa aktarılan model için hedef format, çeşitli dağıtım ortamlarıyla uyumluluğu tanımlar. |
imgsz | int veya tuple | 640 | Desired image size for the model input. Can be an integer for square images or a tuple (height, width) for specific dimensions. |
half | bool | False | FP16 (yarı hassasiyet) kuantizasyonunu etkinleştirir, model boyutunu küçültür ve desteklenen donanımlarda çıkarımı hızlandırabilir. |
int8 | bool | False | data içindeki kalibrasyon görüntülerini kullanarak ONNX Runtime ile INT8 statik kuantizasyonunu etkinleştirir ve bir _int8.onnx modeli üretir. |
data | str | None | INT8 kalibrasyonu için kullanılan veri kümesi YAML'ı. int8=True ile atlanırsa, Ultralytics model görevi için varsayılan kalibrasyon veri kümesini seçer. |
fraction | float | 1.0 | INT8 kuantizasyonu için kullanılacak kalibrasyon görüntülerinin oranı. |
dynamic | bool | False | Dinamik giriş boyutlarına izin vererek değişen görüntü boyutlarını işleme esnekliğini artırır. |
simplify | bool | True | Model grafiğini onnxslim ile basitleştirir, performansı ve uyumluluğu potansiyel olarak artırır. |
opset | int | None | Farklı ONNX ayrıştırıcıları ve çalışma zamanları ile uyumluluk için ONNX opset sürümünü belirtir. Ayarlanmazsa, desteklenen en son sürümü kullanır. |
nms | bool | False | Doğru ve verimli tespit sonrası işleme için gerekli olan Maksimum Olmayan Baskılama (NMS) ekler. |
batch | int | 1 | Dışa aktarma modeli yığın çıkarım boyutunu veya dışa aktarılan modelin predict modunda aynı anda işleyeceği maksimum görüntü sayısını belirtir. |
device | str | None | Dışa aktarma için cihazı belirtir: GPU (device=0), CPU (device=cpu), Apple silikon için MPS (device=mps). |
Dışa aktarma süreciyle ilgili daha fazla ayrıntı için Ultralytics dışa aktarma belgeleri sayfasına git.
Link to this sectionDışa Aktarılan YOLO26 ONNX Modellerini Dağıtma#
Ultralytics YOLO26 modellerini ONNX formatına başarıyla dışa aktardıktan sonra, bir sonraki adım bu modelleri çeşitli ortamlarda dağıtmaktır. ONNX modellerini dağıtmayla ilgili ayrıntılı talimatlar için aşağıdaki kaynaklara göz at:
-
ONNX Runtime Python API Belgeleri: Bu rehber, ONNX Runtime kullanarak ONNX modellerini yüklemek ve çalıştırmak için gerekli bilgileri sağlar.
-
Uç Cihazlarda Dağıtım: ONNX modellerinin uç cihazlarda dağıtılmasına yönelik farklı örnekler için bu belge sayfasına göz at.
-
GitHub'daki ONNX Eğitimleri: ONNX modellerini kullanmanın ve uygulamanın çeşitli yönlerini farklı senaryolarda kapsayan kapsamlı bir eğitim koleksiyonu.
-
Triton Inference Server: Yüksek performanslı ve ölçeklenebilir dağıtımlar için ONNX modellerini NVIDIA'nın Triton Inference Server'ı ile nasıl dağıtacağını öğren.
Link to this sectionÖzet#
Bu rehberde, Ultralytics YOLO26 modellerini çeşitli platformlarda birlikte çalışabilirliklerini ve performanslarını artırmak için ONNX formatına nasıl dışa aktaracağını öğrendin. Ayrıca ONNX Runtime ve ONNX dağıtım seçenekleriyle tanıştırıldın.
ONNX dışa aktarımı, Ultralytics YOLO26 tarafından desteklenen birçok dışa aktarma formatından yalnızca biridir ve modellerini hemen hemen her ortamda dağıtmana olanak tanır. Özel ihtiyaçlarına bağlı olarak, maksimum GPU performansı için TensorRT veya Apple cihazları için CoreML gibi diğer dışa aktarma seçeneklerini de keşfetmek isteyebilirsin.
Kullanımla ilgili daha fazla ayrıntı için ONNX resmi belgelerini ziyaret et.
Ayrıca, diğer Ultralytics YOLO26 entegrasyonları hakkında daha fazla bilgi edinmek istersen, entegrasyon rehberi sayfamızı ziyaret et. Orada birçok faydalı kaynak ve içgörü bulacaksın.
Link to this sectionSSS#
Link to this sectionUltralytics kullanarak YOLO26 modellerini ONNX formatına nasıl dışa aktarırım?#
Ultralytics kullanarak YOLO26 modellerini ONNX formatına dışa aktarmak için şu adımları izle:
from ultralytics import YOLO
# Load a 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")Daha fazla ayrıntı için dışa aktarma belgelerini ziyaret et.
Link to this sectionYOLO26 modellerini dağıtmak için ONNX Runtime kullanmanın avantajları nelerdir?#
YOLO26 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 modellerinin farklı ortamlarda sorunsuz çalışmasını sağlar.
- Donanım hızlandırma: ONNX Runtime, CPU'lar, GPU'lar ve özel hızlandırıcılar için donanıma özgü optimizasyonlardan yararlanarak yüksek performanslı çıkarım sağlar.
- Ç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.
- Performans optimizasyonu: ONNX Runtime, yerel PyTorch modellerine kıyasla 3 kata kadar CPU hız artışı sağlayabilir, bu da onu GPU kaynaklarının sınırlı olduğu dağıtım senaryoları için ideal kılar.
ONNX Runtime belgelerine göz atarak daha fazla bilgi edin.
Link to this sectionONNX'e dışa aktarılan YOLO26 modelleri için hangi dağıtım seçenekleri mevcuttur?#
ONNX'e dışa 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'dan yararlanma.
- 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 modelleri çalıştırma.
- Web tarayıcıları: Etkileşimli web tabanlı uygulamalar için modelleri doğrudan web tarayıcılarında yürütme.
- Bulut hizmetleri: Ölçeklenebilir çıkarım için ONNX formatını destekleyen bulut platformlarında dağıtma.
Daha fazla bilgi için model dağıtma seçenekleri rehberimizi keşfet.
Link to this sectionUltralytics YOLO26 modelleri için neden ONNX formatını kullanmalıyım?#
Ultralytics YOLO26 modelleri için ONNX formatını kullanmak çok sayıda 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ü optimizasyonlardan yararlanarak model performansını artırabilir.
- Esneklik: ONNX çeşitli dağıtım ortamlarını destekleyerek aynı modeli farklı platformlarda değişiklik yapmadan kullanmana olanak tanır.
- Standardizasyon: ONNX, sektör genelinde geniş çapta desteklenen standart bir format sağlayarak uzun vadeli uyumluluk sağlar.
YOLO26 modellerini ONNX'e dışa aktarma hakkındaki kapsamlı rehbere başvur.
Link to this sectionYOLO26 modellerini ONNX'e dışa aktarırken sorunları nasıl gideririm?#
YOLO26 modellerini ONNX'e dışa aktarırken, uyumsuz bağımlılıklar veya desteklenmeyen işlemler gibi yaygın sorunlarla karşılaşabilirsin. Bu sorunları gidermek için:
- Gerekli bağımlılıkların doğru sürümünün yüklü olduğunu doğrula.
- Desteklenen operatörler ve özellikler için resmi ONNX belgelerini kontrol et.
- İpuçları için hata mesajlarını incele ve Ultralytics Yaygın Sorunlar rehberine başvur.
simplify=Truegibi farklı dışa aktarma argümanlarını kullanmayı veyaopsetsürümünü ayarlamayı dene.- Dinamik giriş boyutu sorunları için dışa aktarma sırasında
dynamic=Trueolarak ayarla.
Sorunlar devam ederse, daha fazla yardım için Ultralytics destek ekibiyle iletişime geç.