ONNX YOLOv8 Modelleri için Dışa Aktarma
Bilgisayarla görme modellerini dağıtırken genellikle hem esnek hem de birden fazla platformla uyumlu bir model formatına ihtiyaç duyarsınız.
İ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 olan , Facebook ve Microsoft'un başlangıçta geliştirdiği 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.
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.
İ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
YOLOv8 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 Runtime ile uyumlulukları nedeniyle genellikle CPU'lara 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ı uygulanabilir hale getirir.
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.
-
Uç 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 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')
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:
-
ONNX Çalışma Zamanı Python API Dokümantasyonu: Bu kılavuz, ONNX Runtime kullanarak ONNX modellerini yüklemek ve çalıştırmak için gerekli bilgileri sağlar.
-
Uç Cihazlarda Dağıtım: ONNX modellerini edge üzerinde dağıtmanın farklı örnekleri için bu dokümanlar sayfasına göz atın.
-
ONNX GitHub'daki Öğreticiler: Farklı senaryolarda ONNX modellerini kullanmanın ve uygulamanın çeşitli yönlerini kapsayan kapsamlı eğitimlerden oluşan bir koleksiyon.
Ö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.
2024-01-25 tarihinde oluşturuldu, 2024-01-25 tarihinde güncellendi
Yazarlar: glenn-jocher (1), abirami-vina (1)