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

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

ONNX 'in yapay zeka modeli taşınabilirliğini ve birlikte çalışabilirliğini nasıl geliştirdiğini ve Ultralytics YOLO modellerinin çeşitli platformlarda sorunsuz bir şekilde dağıtılmasını sağladığını keşfedin.

Açık Sinir Ağı DeğişimiONNX), sinir ağlarını temsil etmek için tasarlanmış açık kaynaklı bir standarttır. makine öğrenimi (ML) modelleri farklı çerçeveler ve donanımlar arasında taşınabilirlik sağlar. Başlangıçta Microsoft gibi şirketler tarafından geliştirilen ve Facebook, ONNX yapay zeka için bir "evrensel çevirmen" görevi görüyor. Geliştiricilerin bir modeli tek seferde eğitmesine olanak tanır ekosistem, örneğin PyTorchve sorunsuz bir şekilde başka, gibi TensorFlow veya özel bir çıkarım motoru. Bu birlikte çalışabilirlik şunları ortadan kaldırır Araştırma ortamlarından üretim uygulamalarına geçerken ağları yeniden oluşturma veya yeniden eğitme ihtiyacı, önemli ölçüde kolaylaştırılması model dağıtım boru hattı.

ONNX Nasıl Çalışır?

ONNX , özünde ortak bir operatör kümesi tanımlar; bu operatörlerin yapı taşları derin öğrenme (DL) ve makine öğrenimi modelleri-ve standart bir dosya formatıdır. Bir model ONNX'e dönüştürüldüğünde, hesaplama yapısı statik bir modelle eşleştirilir. hesaplama grafiği. Bu grafikte, düğümler matematiksel işlemleri (konvolüsyonlar veya aktivasyon fonksiyonları gibi) ve kenarlar, aralarındaki veri tensörlerinin akışını temsil eder.

Bu grafik gösterimi standartlaştırıldığından, donanım üreticileri aşağıdakiler için optimize edilmiş yürütme sağlayıcıları oluşturabilir ONNX. Bu, tek bir .onnx dosyası da dahil olmak üzere çeşitli donanımlarda hızlandırılabilir. CPU, GPU (Grafik İşleme Birimi)veya uzmanlaşmış TPU Tensor İşleme Birimi), genellikle yüksek performanslı ONNX Çalışma Zamanı.

Modelleri ONNX'e Aktarma

Kullanıcılar için ultralytics paketinde, eğitilmiş bir modeli ONNX formatına dönüştürmek basit bir işlemdir süreç. Kütüphane, katmanların ONNX standardına karmaşık bir şekilde eşlenmesini otomatik olarak gerçekleştirir. Aşağıdaki kod snippet'i bir dışa aktarmanın nasıl YOLO11 model, hazırlanıyor daha geniş dağıtım için.

from ultralytics import YOLO

# Load a pretrained YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to ONNX format
# This creates 'yolo11n.onnx' in the current directory
model.export(format="onnx")

Gerçek Dünya Uygulamaları

ONNX 'in esnekliği, onu modern yapay zeka altyapısında özellikle aşağıdakiler için kritik bir bileşen haline getirmektedir bilgisayarla görme (CV) görevleri.

  1. Platformlar Arası Mobil Dağıtım: Bir geliştirici bir üzerinde PyTorch kullanarak nesne algılama modeli güçlü iş istasyonu. Ancak, nihai uygulamanın hem iOS hem de Android cihazlarda çalışması gerekir. Dışa aktararak modelini ONNX'e entegre edebilir, geliştirici aynı model dosyasını mobil uygulamalara ONNX Runtime for Mobile, tutarlı davranış sağlar Farklı işletim sistemlerinde ayrı kod tabanları bulundurmadan.
  2. Eski Sistemlerle Entegrasyon: Birçok endüstriyel uygulama, C++ veya C++ gibi diller kullanılarak oluşturulmuştur. Performans ve kararlılık için C#. Python eğitim için standart olsa da, Python bir modeli bir C++ üretim ortamı yavaş ve hata eğilimli olabilir. ONNX bu boşluğu dolduruyor. Aşağıdakileri kullanan bir üretim tesisi roboti̇kte bi̇lgi̇sayar görüşü Python'da bir modeli eğitebilir, ONNX'e aktarabilir ve ardından doğrudan C++ kontrol yazılımlarına yükleyebilir. fabrikada yüksek hızlı gerçek zamanlı çıkarım Zemin.

ONNX ve İlgili Kavramlar

ONNX 'in diğer araçlarla nasıl etkileşime girdiğini anlamak, doğru dağıtım stratejisinin seçilmesine yardımcı olur.

  • ONNX vs. TensorRT: ONNX , modelleri temsil etmek için bir dosya formatıdır, TensorRT yüksek performanslı bir optimizasyon SDK'sıdır NVIDIA tarafından özellikle NVIDIA GPU'ları için geliştirilmiştir. Bu ikisi genellikle birlikte çalışır; geliştiriciler modelleri ONNX 'e aktarır ve daha sonra bu ONNX dosyasını almak için TensorRT kullanın ve agresif model optimizasyonu NVIDIA donanımında maksimum hız için katman birleştirme ve kalibrasyon gibi teknikler.
  • ONNX ve Çerçeve Biçimleri (örn. .pt, .h5): PyTorch'unki gibi yerel formatlar .pt veya Keras'ın .h5 eğitim ve tasarruf için mükemmeldir model ağırlıkları kendi özel ekosistemleri içinde. Bununla birlikte, modeli çalıştırmak için genellikle orijinal çerçevenin kurulmasını gerektirirler. ONNX modeli aşağıdakilerden ayırır eğitim çerçevesi, gerçekleştirmeyi kolaylaştırır uç yapay zeka tam bir eğitimin kurulduğu dağıtımlar kütüphanesi depolama veya bellek kısıtlamaları nedeniyle pratik değildir.
  • ONNX ve Niceleme: ONNX bir formattır, oysa model kuantizasyonu, model kuantizasyonunu azaltmak için bir tekniktir. model boyutu ve hassasiyeti düşürerek hızı artırmak (örneğin, float32'den int8'e). ONNX standardı şunları destekler nicelleştirilmiş operatörler, geliştiricilerin kuantize modeller verimli bir şekilde.

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