İçeriğe geç

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.

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

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.

  • 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.



2024-01-25 tarihinde oluşturuldu, 2024-01-25 tarihinde güncellendi
Yazarlar: glenn-jocher (1), abirami-vina (1)

Yorumlar