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 , ö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ı.
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")
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.
ONNX 'in diğer araçlarla nasıl etkileşime girdiğini anlamak, doğru dağıtım stratejisinin seçilmesine yardımcı olur.
.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.
