Yolo Vision Shenzhen
Shenzhen
Şimdi katılın
Sözlük

ONNX (Açık Sinir Ağı Borsası)

Açık Sinir Ağı Değişimi (ONNX) formatını keşfedin. Hızlı, çapraz platform dağıtımı ve donanım optimizasyonu ONNX Ultralytics ONNX nasıl aktaracağınızı öğrenin.

ONNX Open Neural Network Exchange), makine öğrenimi modellerini temsil etmek için tasarlanmış açık kaynaklı bir formattır ve çeşitli AI çerçeveleri ve araçları arasında birlikte çalışabilirlik sağlar. Derin öğrenme için evrensel bir çevirmen görevi görür ve geliştiricilerin tek bir çerçevede modeller oluşturmasına olanak tanır. PyTorch, TensorFlow veya Scikit-learn gibi tek bir çerçevede modeller oluşturmalarını ve bunları çıkarım için optimize edilmiş başka bir ortamda sorunsuz bir şekilde dağıtmalarını sağlar. Ortak bir operatör kümesi ve standart bir dosya formatı tanımlayarak, ONNX , modelleri araştırmadan üretime taşımak için tarihsel olarak gerekli olan karmaşık, özel dönüştürme komut dosyalarının ihtiyacını ONNX . Bu esneklik, eğitimin güçlü bulut GPU'larında gerçekleşirken, dağıtımın kenar cihazları, cep telefonları veya web tarayıcıları gibi çeşitli donanımları hedeflediği modern AI iş akışları için çok önemlidir.

Modern Yapay Zekada ONNX 'in Rolü

Hızla gelişen yapay zeka alanında, araştırmacılar ve mühendisler genellikle geliştirme yaşam döngüsünün farklı aşamaları için farklı araçlar kullanır. Bir veri bilimcisi, deney ve eğitim PyTorch esnekliğini tercih ederken, bir üretim mühendisi, TensorRT'nin optimize edilmiş performansına ihtiyaç duyabilir. TensorRT veya OpenVINO optimize edilmiş OpenVINO . Standart bir değişim formatı olmadan, bu ekosistemler arasında bir modeli taşımak zor ve hataya açıktır.

ONNX , hesaplama grafiğinin ortak bir tanımını sağlayarak bu boşluğu ONNX . Bir model ONNX aktarıldığında, ağ yapısını (katmanlar, bağlantılar) ve parametreleri (ağırlıklar, önyargılar) çerçeve bağımsız bir şekilde yakalayan bir biçime serileştirilir. Bu, donanım hızlandırma için özel olarak ayarlanmış çıkarım motorlarının ( ONNX gibi) modeli Linux, Windows, macOS, Android ve iOS dahil olmak üzere birden fazla platformda verimli bir şekilde yürütmesini sağlar.

ONNX Kullanmanın Temel Avantajları

Açık Sinir Ağı Değişim formatını benimsemek, AI projeleri için çeşitli stratejik avantajlar sunar:

  • Çerçeve Birlikte Çalışabilirliği: Geliştiriciler, tek bir ekosisteme bağlı kalmadan çerçeveler arasında geçiş yapabilirler. Kullanıcı dostu Ultralytics Python kullanarak bir model eğitebilir ve C++ uygulamasında veya web tabanlı JavaScript ortamında kullanmak üzere dışa aktarabilirsiniz.
  • Donanım Optimizasyonu: Birçok donanım üreticisi, ONNX ile arayüz oluşturan özel yürütme sağlayıcıları sunmaktadır. Bu, tek bir .onnx dosyası, NVIDIA , Intel veya mobil NPU'lar (Sinir İşlem Birimleri) üzerinde OpenVINO veya CoreML.
  • Daha Hızlı Çıkarım: ONNX , düğüm birleştirme ve sabit katlama gibi grafik optimizasyonları uygular. Bu, çıkarım gecikmesini önemli ölçüde azaltabilir. Bu, otonom araçlar veya yüksek hızlı üretim hatları gibi gerçek zamanlı uygulamalar için çok önemlidir. Bu, otonom araçlar veya yüksek hızlı üretim hatları gibi gerçek zamanlı uygulamalar için çok önemlidir.
  • Basitleştirilmiş Dağıtım: Mühendislik ekipleri, her eğitim çerçevesi için ayrı dağıtım boru hatları bakmak yerine, teslimat formatı ONNX standart hale getirerek ModelOps süreçlerini kolaylaştırabilir.

Gerçek Dünya Uygulamaları

ONNX in çok yönlülüğü, onu çeşitli endüstrilerde vazgeçilmez bir unsur ONNX . İşte uygulamasının iki somut örneği:

1. Mobil Cihazlarda Kenar Yapay Zeka

Gerçek zamanlı mahsul sağlığı izleme için tasarlanmış bir mobil uygulamayı düşünün. Bu model, bitki görüntülerinden oluşan büyük bir veri seti kullanılarak güçlü bir bulut sunucusunda eğitilebilir. Model, bitki görüntülerinden oluşan büyük bir veri kümesi kullanılarak güçlü bir bulut sunucusunda eğitilebilir. Ancak uygulamanın çiftçinin akıllı telefonunda çevrimdışı çalışması gerekir. Eğitimli modeli ONNX aktararak, geliştiriciler onu ONNX Mobile kullanarak mobil uygulamaya entegre edebilir. Bu, telefonun işlemcisinin nesne algılamayı yerel olarak çalıştırmasına ve internet bağlantısına ihtiyaç duymadan zararlıları veya hastalıkları anında tanımlamasına olanak tanır.

2. Çapraz Platform Web Çıkarımları

E-ticarette, "sanal deneme" özelliği, poz tahminini kullanarak kullanıcının web kamerası görüntüsüne giysileri yerleştirebilir. Bu modelin eğitimi Python yapılabilir, ancak dağıtım hedefi bir web tarayıcısıdır. ONNX kullanılarak model dönüştürülebilir ve ONNX Web aracılığıyla doğrudan kullanıcının tarayıcısında çalıştırılabilir. Bu, istemcinin cihaz yeteneklerini (WebGL veya WebAssembly) kullanarak bilgisayar görme görevlerini yerine getirir ve video verileri kullanıcının bilgisayarından hiç çıkmadığı için sorunsuz ve gizliliği koruyan bir deneyim sağlar.

İlgili Terimlerle Karşılaştırma

ONNX diğer model ONNX ve araçlardan ayırt etmek faydalıdır:

  • vs. TensorRT: ONNX bir değişim formatı ONNX , TensorRT özellikle NVIDIA için bir çıkarım motoru ve optimize edicidir. Yaygın bir iş akışı, ONNX modeli ONNX aktarmak ve ardından bu ONNX ONNX TensorRT ayrıştırarak NVIDIA maksimum verim TensorRT .
  • vs. TensorFlow SavedModel: SavedModel , TensorFlow için yerel serileştirme SavedModel TensorFlow. Google sağlam olmasına rağmen, ONNX kadar evrensel olarak uyumlu değildir. SavedModel'leri ONNX 'e dönüştürmek için genellikle araçlar mevcuttur ONNX daha geniş platform desteği sağlanır.
  • vs. CoreML: CoreML Apple'ın cihaz üzerinde makine öğrenimi için geliştirdiği bir çerçeve. Farklı olsalar da, modeller genellikle PyTorch ONNX, ardından ONNX CoreML veya doğrudan) dönüştürülerek iPhone ve iPad'lerde verimli bir şekilde çalıştırılır.

Ultralytics ONNX 'e aktarma

Ultralytics , YOLO26 gibi son teknoloji modelleri ONNX dönüştürme sürecini basitleştirir. Dışa aktarma işlevi, kütüphaneye doğrudan entegre edilmiştir ve karmaşık grafik geçişini ve operatör eşleştirmesini otomatik olarak gerçekleştirir.

Aşağıdaki örnek, önceden eğitilmiş bir YOLO26 modelini dağıtım için ONNX nasıl dışa aktaracağınızı gösterir:

from ultralytics import YOLO

# Load the YOLO26n model (Nano version recommended for edge deployment)
model = YOLO("yolo26n.pt")

# Export the model to ONNX format
# The 'dynamic' argument enables variable input sizes
path = model.export(format="onnx", dynamic=True)

print(f"Model exported successfully to: {path}")

Dışa aktarıldıktan sonra, bu .onnx dosyası, Ultralytics Platformu yönetim için veya ONNX kullanılarak doğrudan uç cihazlara dağıtılır, böylece yüksek performanslı bilgisayar görüşü neredeyse her ortamda erişilebilir hale gelir.

Ultralytics topluluğuna katılın

Yapay zekanın geleceğine katılın. Küresel yenilikçilerle bağlantı kurun, işbirliği yapın ve birlikte büyüyün

Şimdi katılın