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.
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.
Açık Sinir Ağı Değişim formatını benimsemek, AI projeleri için çeşitli stratejik avantajlar sunar:
.onnx dosyası, NVIDIA , Intel veya
mobil NPU'lar (Sinir İşlem Birimleri) üzerinde
OpenVINO veya CoreML.
ONNX in çok yönlülüğü, onu çeşitli endüstrilerde vazgeçilmez bir unsur ONNX . İşte uygulamasının iki somut örneği:
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.
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.
ONNX diğer model ONNX ve araçlardan ayırt etmek faydalıdır:
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.