ONNX Çalışma Zamanı Kılavuzu: Windows 11 Bilgisayarlarda Yerel Yapay Zekayı Hızlandırma

  • ONNX Runtime, çeşitli yürütme sağlayıcıları aracılığıyla CPU, GPU ve diğer hızlandırıcıları kullanarak ONNX modellerini Windows 11'de yerel olarak çalıştırmanıza olanak tanır.
  • WinML, ONNX Runtime'ı işletim sisteminin içine entegre ederek Windows uygulamalarında en uygun donanım seçimini, model yüklemeyi ve dağıtımı basitleştirir.
  • .NET ve WinUI 3 ile, görüntüleri verimli bir şekilde yükleyen, işleyen ve ResNet gibi ONNX modellerinden tahminler elde eden masaüstü uygulamaları oluşturmak mümkündür.
  • ONNX Runtime ekosistemi, birden fazla dil ve platform için derlemeler sunmanın yanı sıra, birden fazla sürüm, ayrı süreçler ve optimize edilmiş eğitim kullanımı için gelişmiş seçenekler de sunmaktadır.

ONNX Çalışma Zamanı kılavuzu: Windows 11 bilgisayarlarda yerel yapay zekayı hızlandırma

Eğer öyle hissediyorsan Yapay zekayı doğrudan Windows 11 bilgisayarınıza getirin. Buluta bağımlı kalmadan, ONNX Runtime artık bulmacanın önemli bir parçası. Bu kılavuz, ne olduğunu, WinML ile nasıl entegre olduğunu, neleri yüklemeniz gerektiğini ve .NET (C#, VB.NET) yanı sıra diğer diller ve donanım hızlandırıcılarla nasıl kullanabileceğinizi anlamanıza yardımcı olmak için tasarlanmıştır.

Metnin tamamında göreceksiniz teknik açıklamalar, gerçek dünya kullanım örnekleri ve kurulum detaylarıAma her şey dostane bir üslupla anlatılıyor. Amaç, okumayı bitirdiğinizde, ONNX modellerini yükleyen, bunları verimli bir şekilde (CPU, GPU veya NPU kullanarak) çalıştıran ve modern Windows ekosistemiyle iyi entegre olan bir uygulamayı Windows 11'de nasıl kuracağınız konusunda net bir anlayışa sahip olmanızdır.

ONNX Runtime nedir ve Windows 11 ile neden bu kadar iyi uyum sağlıyor?

ONNX Runtime, platformlar arası bir yürütme motorudur. Bu araç, ONNX (Open Neural Network Exchange) formatındaki makine öğrenimi ve derin öğrenme modellerini yüklemek ve puanlamak için tasarlanmıştır. Bu format, PyTorch, TensorFlow, Keras, TFLite veya scikit-learn gibi çerçevelerde modelleri eğitmenize ve ardından neredeyse her ortamda çalıştırmak üzere ONNX'e aktarmanıza olanak tanıyan açık bir standarttır.

Bu ekosistem içerisinde, Windows 10 (1809 sürümünden itibaren) ve tüm Windows 11 sürümleri, ONNX Runtime'ın entegre bir kopyasını zaten içermektedir. Microsoft.Windows.AI.MachineLearning.dll kütüphanesindeki Windows Makine Öğrenimi (WinML) aracılığıyla. Bu kopya, DirectML aracılığıyla hem CPU hem de GPU üzerinde yürütme imkanı sunar, böylece sürücüler ve düşük seviyeli katmanlarla doğrudan uğraşmak zorunda kalmadan GPU'nun avantajlarından yararlanabilirsiniz.

ONNX Runtime tasarımı şu nedenlerle öne çıkıyor: Farklı "yürütme sağlayıcılarını" (EP) birbirine bağlamaya olanak tanır.Modelin hesaplamalarını mevcut donanıma (CPU, GPU, DirectML, CUDA, TensorRT) eşlemekten sorumlu olan bileşenler şunlardır: NPUFPGA vb. Bu durum, ONNX Runtime'ı geliştiricinin hayatını büyük ölçüde kolaylaştıran bir tür soyutlama katmanı haline getiriyor.

Ayrıca, son Windows 11 sürümlerinde (özellikle 24H2 sürümünden itibaren) WinML, ONNX Runtime'a dayanır ve en uygun EP'nin seçimini otomatikleştirir. Kullanıcının cihazı için, mevcut donanıma bağlı olarak CPU, GPU ve diğer hızlandırıcılar arasında geçiş yapabilme olanağı sunar; böylece her seferinde uygulamanın tamamını yeniden yazmanıza gerek kalmaz.

ONNX modelleri: Özellikleri ve yerel pazardaki avantajları nelerdir?

ONNX format modeli esasen şöyledir: Önceden eğitilmiş bir sinir ağının veya makine öğrenimi algoritmasının taşınabilir bir temsili.Dosya, ağ mimarisini (katmanlar, bağlantılar, işlem türleri), eğitim sırasında öğrenilen ağırlıkları ve beklenen girdi ve çıktıların resmi tanımını içerir.

Örnek bir görüntü sınıflandırma modeli Genellikle önceden işlenmiş bir görüntü (örneğin, RGB'de 224×224 piksel) alır ve her konumun bir etiketle (köpek, kedi, tekne vb.) ilişkilendirildiği bir olasılık vektörü döndürür. Her etiketin bu vektörde kapladığı indeks, genellikle ONNX deposunda veya model kütüphanesinde modelle birlikte bulacağınız bir sınıf listesi tarafından tanımlanır.

Windows 11'de ONNX ile çalışmanın harika yanı şu ki... Bu modelleri tamamen yerel olarak çalıştırabilirsiniz.Verileri harici sunuculara göndermeden. Bu durum gizlilik, maliyet ve gecikme açısından açık sonuçlar doğurmaktadır:

  • Gizlilik: Görseller, metinler veya hassas veriler asla bilgisayarınızdan dışarı çıkmaz.
  • Maliyet: Çıkarım yapmak için ücretli bulut hizmetlerine bağımlı değilsiniz.
  • hız: Ağ gecikmesini ortadan kaldırır ve CPU, GPU veya NPU'nuzdan daha iyi yararlanırsınız.
  • Kontrol: Hangi modelleri kullanacağınıza, ne zaman güncelleyeceğinize ve nasıl dağıtacağınıza siz karar verebilirsiniz.

Windows özelinde, WinML ve ONNX Runtime, sistem entegrasyonunu büyük ölçüde kolaylaştırır.Windows.Media.VideoFrame (kameradan yakalanan) gibi nesneleri doğrudan modele aktararak gerçek zamanlı çıkarım yapabilirsiniz; bu da masaüstü bilgisayar görüntüleme senaryoları için mükemmeldir.

Windows 11'de WinML ve ONNX Çalışma Ortamı: Birlikte Nasıl Çalışırlar?

WinML Mimarisi ve ONNX Çalışma Zamanı

Windows içerisinde, WinML (Windows Machine Learning), WinRT'nin üst düzey API'sidir. ONNX modelleri üzerinde çıkarım yeteneklerini ortaya koyar. İşletim sisteminin bir parçası olarak dağıtılır (Windows 10 1809'dan beri) ve ayrıca belirli sürümleri gerektiren uygulamalar için yeniden dağıtılabilir bir paket olarak da kurulabilir.

WinML dahili olarak ONNX Runtime'ı kullanır, ancak Amacı, Windows uygulama geliştiricilerinin hayatını kolaylaştırmaktır.Sistem türleriyle (örneğin VideoFrame) yerel entegrasyon sunar, yürütme sağlayıcısı seçimini otomatikleştirir ve istemcide yapay zeka modellerini çalıştırmak için gereken bağımlılıkları birleşik bir şekilde dağıtır.

Genel olarak, Windows 11'de şunlara sahipsiniz: ONNX Runtime ile etkileşim kurmanın iki yolu:

  • WinRT (WinML) API'sini kullanın: Özellikle Windows 11 24H2 veya üzeri sürümlerde tavsiye edilir; bu sürümlerde WinML, EP seçimini iyileştirir ve çeşitli silikon üreticileri için kapsamlı destek sunar.
  • ONNX Runtime C API'sini doğrudan veya bağlayıcılarını kullanarak kullanabilirsiniz. (C#, C++, Python, Java, vb.) Bu da size hangi DLL sürümünü kullanacağınız ve her durumda hangi EP'yi etkinleştireceğiniz konusunda daha fazla kontrol sağlar.
  KeePassXC: Parolalarınız için açık kaynaklı alternatif

Eğer halihazırda bu ad alanına yönelik yazılmış kodunuz varsa Windows.AI.MakineÖğrenimiMicrosoft.ML.OnnxRuntime NuGet paketini ve ilgili API'leri kullanacak şekilde güncellemek nispeten kolaydır: temelde Windows ad alanı referanslarını Microsoft olarak değiştiriyorsunuz. Ve siz de eşdeğer tipleri ayarlayarak, esasen aynı mantığı koruyorsunuz.

Windows 11'in önceki sürümlerinde ve Windows 10'da (1809+), ONNX Runtime aynı şekilde çalışır.Ancak, modellerin ve yürütme sağlayıcılarının seçimini kendiniz yönetmeniz gerekecek; oysa Windows 11 24H2+'da WinML bu karmaşıklığın büyük bir kısmından sizi kurtarıyor.

Windows 11'de Önkoşullar ve Kurulum Varyasyonları

Rahat bir şekilde çalışmak için Windows 11 bilgisayarlarda ONNX Çalışma OrtamıBazı temel sistem seviyesi gereksinimlerini, geliştirme araçlarını ve ek kütüphaneleri gözden geçirmeniz önerilir:

  • Windows 11 veya Windows 10 (1809+): WinML API'leri ve entegre ONNX Runtime kopyası, bu sürümlerden itibaren kullanılabilir durumdadır.
  • Visual C++ 2019 Çalışma Ortamı: Windows için ONNX Runtime'ın resmi sürümleri, bu çalışma ortamının kurulu olmasını gerektirir; en son sürüme sahip olmanız önerilir.
  • Geliştirici modu etkinleştirildi: UWP veya WinUI3 uygulamalarını yerel olarak dağıtıp hata ayıklayacaksanız, Windows ayarlarında geliştirici modunu etkinleştirin.
  • Visual Studio 2022 veya üzeri: Amacınız .NET (C#, VB.NET) ile masaüstü uygulamaları oluşturmaksa, ".NET masaüstü uygulama geliştirme" iş yükünü yükleyin.

Windows'ta GPU hızlandırmasından bahsettiğimizde, dikkate alınması gereken birkaç husus vardır ve Seçtiğiniz dil ve düzene bağlı olarak kombinasyonlar değişir.:

  • Python paketleri: kurabilirsin onnxruntime (CPU) veya GPU'ya özgü paketler (CUDA, TensorRT, DirectML), CUDA ve cuDNN gereksinimlerini dikkate alarak kullanılmalıdır. GPU paketleri için, CUDA ve cuDNN sürümlerinin resmi uyumluluk tablosuyla eşleştirilmesi zorunludur.
  • C#/C/C++ Paketleri: ONNX Runtime, CPU, CUDA (11.8 veya 12.x) destekli GPU ve DirectML odaklı paketler sunmaktadır (ancak DirectML "sürdürülebilir mühendislik" modundadır; yeni Windows projeleri için WinML önerilir).
  • JavaScript ve mobil: Tarayıcılar (ONNX Runtime Web), Node.js, React Native, iOS ve Android için derlemeler mevcuttur; ayrıca operatörleri azaltmak ve boyutu küçültmek için özel derleme seçenekleri de bulunmaktadır.

NVIDIA GPU'larının bulunduğu ortamlarda, ONNX Runtime GPU paketleri, düzgün şekilde yapılandırılmış CUDA ve cuDNN gerektirir.Windows'ta klasörler bin CUDA ve cuDNN ortam değişkenine eklenmelidir. PATHLinux'ta eklenir. lib64 ve cuDNN kütüphanelerine LD_LIBRARY_PATHAyrıca, cuDNN'nin bazı sürümleri zlib'in kurulu olmasını gerektirir.

.NET projelerinde ONNX Runtime ve WinML kurulumu

Windows 11 üzerinde .NET ile çalışıyorsanız, ONNX Runtime'ı entegre etmenin birkaç yolu vardır, ancak en yaygın iki yöntem şunlardır: ONNX Runtime NuGet paketlerini doğrudan kullanın Ya da Windows ML'ye entegre edilmiş kopyalama özelliğiyle WinML'ye güvenebilirsiniz.

Tipik bir masaüstü projesinde C# ve WinUI3Akış şu şekilde olacaktır:

  1. Visual Studio'da bir tane oluşturun. “Boş, paketlenmiş uygulama (masaüstünde WinUI 3)” projesi ve örneğin ONNXWinUIExample olarak adlandırın.
  2. Açın NuGet Paket Yöneticisi Bu proje için gerekli paketleri ekleyin.

Örneğin, şu senaryo için: GPU hızlandırmalı görüntü sınıflandırması C#'tan DirectML kullanırken, genellikle en azından şunları eklemeniz gerekir:

  • Microsoft.ML.OnnxRuntime.DirectML: DirectML kullanarak GPU hızlandırmalı yürütmeyi destekleyen ONNX Çalışma Zamanı API'lerini kullanıma sunar.
  • AltıEmek.ImageSharp: Görüntüleri yükleme, işleme, yeniden boyutlandırma ve normalleştirme işlemlerini modele aktarmadan önce gerçekleştirmek için güçlü araçlar sunar.
  • SharpDX.DXGI (veya diğer DirectX erişim dosyaları): Bu, grafik adaptörlerini seçmenize ve DirectML ile entegrasyonu koordine etmenize olanak tanır.

Paketler yüklendikten sonra, ana kod dosyasında (örneğin) MainWindow.xaml.cs) Gerekli kullanım yönergeleri eklendi. InferenceSession, tensörler ve görüntü işleme ile çalışmak için. Bununla, çıkarım oturumunuzu oluşturabilir ve giriş verilerini hazırlayabilirsiniz.

Pratik örnek: Windows 11'de görüntüleri sınıflandıran WinUI 3 uygulaması

Windows 11 Bilgisayarlar için ONNX Çalışma Zamanı Kılavuzu

En açıklayıcı örneklerden biri şudur: Bir fotoğraf seçmenize ve bu fotoğrafı bir ONNX modeli üzerinde çalıştırmanıza olanak tanıyan bir WinUI 3 uygulaması oluşturun. (örneğin ResNet50 v2) ve ekranda en olası etiketleri güven yüzdeleriyle birlikte görüntüleyin.

Bölümünde XAML arayüzüŞu kadar basit bir bakış açısı yeterlidir:

  • Un resmi seçmek için düğme Bir dosya iletişim kutusu aracılığıyla.
  • Bir kontrol Seçilen fotoğrafı görüntülemek için kullanılacak resim kullanıcı tarafından.
  • Un Tahminleri listelemek için TextBlock model tarafından döndürülen değer.

Düğme işleyicisi tipik olarak şunu kullanır: DosyaAçSeçici Yaygın resim uzantılarına (.jpg, .jpeg, .png, .gif) izin verecek şekilde yapılandırılmış ve doğru pencere tanımlayıcısıyla başlatılmış (aracılığıyla). InitializeWithWindow.InitializeBöylece masaüstü WinUI uygulamalarında düzgün çalışır. Kullanıcı dosyayı seçtiğinde, dosya şu şekilde yüklenir: BitmapImage ve Görüntü denetimine atanmıştır.

  Reprompt: Copilot görüşmelerinden veri çalan saldırı

Şimdi işin ilginç kısmına gelelim: Görüntüyü, modelin beklediği formata uyarlamak için ön işlemden geçirin.ImageSharp ile görüntüyü 24 bit RGB formatında açabilir, (model gerektiriyorsa) 224×224 piksele yeniden boyutlandırabilir ve ImageNet tipi sınıflandırmada olduğu gibi ortalama için 255× ve standart sapma için 255× gibi belirli ortalama ve standart sapmalar kullanarak piksel değerlerini normalleştirebilirsiniz.

DirectML ile model başlatma ve yürütme

Windows 11'de C# kullanarak ONNX modelini GPU hızlandırmasıyla çalıştırmak için genellikle izlenen yöntem şöyledir: DirectML yürütme sağlayıcısı ile yapılandırılmış bir InferenceSession oluşturun.Daha önce SharpDX.DXGI'yi kullanarak grafik adaptörlerini listeleyebilir ve istediğinizi seçebilirsiniz, ancak genellikle ilk kullanılabilir adaptörle başlamak daha yaygındır.

Bu yapılandırma genellikle bir yardımcı yöntem içinde kapsüllenir (örneğin, InitModel) o:

  • Hali hazırda başlatılmış bir çıkarım oturumunun olup olmadığını kontrol edin.
  • Kullanın DXGI Factory1'den bir adaptör seçin (Adapter1).
  • Bir nesne oluştur Oturum Seçenekleri ONNX Runtime'da istediğiniz günlük kaydı seviyesini ayarlayın ve çağırın. AppendExecutionProvider_DML Cihaz tanımlayıcısı ile birlikte.
  • başlat .onnx dosyasına işaret eden InferenceSession Proje içerisinde yer alan bir model klasörünün içinde (örneğin, “model\resnet50-v2-7.onnx”).

ResNet50 v2 şablonu, resmi ONNX şablon deposundan ONNX formatında indirilebilir. İndirildikten sonra, Proje içerisinde "model" klasörü içinde yer almaktadır. Dosya, Visual Studio'da "Çıktı dizinine kopyala - Daha yeniyse kopyala" seçeneğiyle yapılandırılır, böylece yürütülebilir dosya ile birlikte her zaman kullanılabilir olur.

Buton işleyicisinde, InitModel genellikle yalnızca oturum henüz başlatılmamışsa çağrılır, bu nedenle ilk çıkarım Bu biraz daha uzun sürüyor, ancak sonrakiler çok daha hızlı çünkü oturum ve kaynaklar zaten hazır.

Tensor hazırlığı, çıkarım ve sonuçların son işlenmesi

Normalleştirilmiş görüntüyü belleğe aldıktan sonraki adım şudur: Verileri, modelin beklediği şekle sahip bir tensöre dönüştürün.ResNet ile sınıflandırmanın tipik durumunda, genellikle şu form kullanılır: (batch boyutu 1, üç RGB kanalı, 224×224 piksel).

ile YoğunTensor İndekslerle erişimi kolaylaştıran çok boyutlu bir tampon oluşturabilirsiniz. Piksel satırlarını dolaşarak (örneğin, ImageSharp'ın ProcessPixelRows deseniyle), normalleştirilmiş değerler kanal kanal (R, G, B) tensöre atanır.

Kopya sayısını azaltmak ve performansı artırmak için ONNX Runtime şunlara olanak tanır: DenseTensor'ın yönetilen arabelleğini doğrudan kullanan bir OrtValue oluşturun.Bu işlem, veriyi bellekte sabitleyerek (pinleyerek) çöp toplayıcının çalışma zamanı veriyi kullanırken onu hareket ettirmesini engeller. Bu, verilerin motor içinde çoğaltılmasını önler.

El girişler sözlüğü Oluşturulan OrtValue'ye modelin beklediği adı (örneğin, "veri") atayarak oluşturulur. Ardından, bir çağrı yapılır. _inferenceSession.Run İstenilen seçenekler ve çıktı adları listesi ile sonuç olarak bir OrtValue koleksiyonu elde edilir.

Birçok sınıflandırma modelinde çıktı basitçe şöyledir: softmax'e ihtiyaç duyan logitlerden oluşan bir vektör Bu verileri 0 ile 1 arasında olasılıklara dönüştürmek için kullanılır. Bu genellikle verileri bir diziye kopyalayarak ve ilgili işlemi uygulayarak yapılır. exp(x) Her bir değer için, bunları toplayın ve her bir üslü ifadeyi bu toplama bölün, böylece sınıf başına normalize edilmiş olasılığı elde edin.

Etiket eşleme, en iyi k ve kullanıcı sunumu

İşlem hattındaki son adım, bu olasılık vektörünü kullanıcının kolayca anlayabileceği bir şeye dönüştürmektir. Çıktıdaki her indeks, bir sınıfına karşılık gelir. modelin eğitildiği etiketlerin listesiBu nedenle, indekslerin metin dizelerine eşlenmesi gerekmektedir.

Yaygın bir uygulama, örneğin LabelMap gibi, statik bir sınıf tanımlamaktır; bu sınıf şunları içerir: Modelin tüm etiketlerini içeren bir dize dizisi. Eğitim sırasında kullanıldıkları sırayla listelenirler. Bu liste genellikle uzundur (ImageNet örneğinde binlerce sınıf), bu nedenle normalde resmi örnek dosyalardan veya referans depolarından kopyalanır.

C# kodunda, iki özelliğe sahip küçük bir yardımcı sınıf olan Prediction'ı oluşturabilirsiniz: Etiket (metin etiketi) ve Güvenirlik (olasılık değeri)Olasılık vektöründen, indeksi içeren bir Seçme projeksiyonu ile, Güven derecesine göre azalan sırada sıralanmış bir Tahmin dizisi oluşturulur ve örneğin ilk 10 tanesi alınır.

  Windows Yapışkan Notlar'da yazı tipi, boyutu ve stili nasıl değiştirilir?

Bu sonuçlar, arayüzün TextBlock alanına okunabilir bir biçimde gönderilir ve "Etiket: X, Güvenirlik: Y" gibi bir ifade içerir. Kullanıcı bunu görür. En muhtemel 10 sınıfın listesi Seçilen görüntü için, yüzdelerin toplamı yaklaşık 1'e ulaşacak şekilde (softmax sayesinde) hesaplanmıştır; bu da modelin neyi ve ne kadar kesinlikle tespit ettiğini anlamayı kolaylaştırır.

Proje dağıtıldıktan ve uygulama çalışmaya başladıktan sonra, düğmeye basmanız yeterlidir. fotoğraf seçDisk üzerinde bir resim bulun ve ilk kez kullanılıyorsa uygulamanın modeli başlatmasına izin verin. Çıkarım işleminden sonra, tahminlerin sıralı listesi görünür; bu sayede modelin nasıl tepki verdiğini görmek için farklı resimleri hızlıca test edebilirsiniz.

Windows 11'de diğer dillerden ONNX Runtime'ı kullanma

C# ve WinUI'ye ek olarak, ONNX Runtime, diğer işletim sistemlerinde olduğu gibi neredeyse aynı şekilde kullanılabilir. Windows 11 üzerinde Python, C++ hatta JavaScript ile çalışırken.

Python'da, gömülü sürümü Windows ML aracılığıyla yüklerseniz, Modül her zamanki gibi içe aktarılıyor. ile import onnxruntime as ortTıpkı WinML ekosistemi dışında ONNX Runtime'ın genel sürümüyle çalışırken olduğu gibi. Çıkarım oturumları oluşturma, beslemeleri ve çekmeleri yönetme ve model meta verilerini sorgulama işlemlerinin tümü, standart dokümantasyonda bulunan aynı API'yi izler.

C++ ve C dillerinde, senaryoya bağlı olarak, resmi derlemelerle birlikte dağıtılan veya Windows ML'ye entegre edilen başlık dosyaları ve kütüphaneler kullanılır. Her iki durumda da, Oturum oluşturma, model yükleme, yürütme sağlayıcılarını ayarlama ve çıkarımları çalıştırma işlevleri. Bunlar, resmi ONNX Runtime web sitesinde zaten belgelenmiş olanlarla aynı, bu nedenle Linux veya macOS için öğrendikleriniz oldukça iyi bir şekilde aktarılabilir.

Ayrıca destek var JavaScript (web ve Node.js), React Native ve mobil platformlarBu ortamlarda, ONNX Runtime Web derlemeleri veya Android/iOS paketleri, çıkarım işleminin cihaz üzerinde gerçekleştirilmesine olanak tanır ve modelleriniz için gerekli operatörleri içeren özel derlemeler oluşturma seçeneği sunarak indirme boyutunu ve kaynak tüketimini azaltır.

Gelişmiş senaryolar: birden fazla sürüm, ayrı süreçler ve eğitim

Bazı üretim senaryolarında şunlara ihtiyacınız olabilir: ONNX Runtime'ın birden fazla sürümünü aynı anda kullanmakBu durum, uygulamanızın kendi çalışma zamanı sürümlerini getiren üçüncü taraf eklentileri yüklemesi durumunda veya belirli modellerin belirli bir derlemeye bağlı olması durumunda (örneğin, bir yürütme sağlayıcısıyla uyumluluk için) ortaya çıkabilir.

Windows'ta pratik bir çözüm şudur: Windows ML'yi ayrı bir işlemde çalıştırın. ve bu yardımcı uygulamayla iletişim kurar. Yaygın bir yöntem, bir modeli (örneğin, SqueezeNet) yükleyen, bir resmin yolunu parametre olarak kabul eden ve içeriğin yorumunu (etiketler ve olasılıklar) standart çıktı yoluyla döndüren küçük bir konsol yürütülebilir dosyasını derlemeyi içerir.

Ana uygulamanız daha sonra şu şekilde olabilir: Bu işlemi System.Diagnostics.Process ile başlatın.Uygun argümanları taslak haline getirin, standart çıktıyı yönlendirin ve alt işlem tarafından üretilen satırları ayrıştırın; böylece ONNX Runtime DLL'sini her iki bağlam arasında doğrudan paylaşmaya gerek kalmaz.

Bu yaklaşım özellikle şu durumlarda işe yarar: Sadece metin girdisi ve çıktısıyla belirli çıkarımlar yapmanız gereken durumlarDaha karmaşık durumlar için (kalıcı yapay zeka süreçleri veya ikili veya yapılandırılmış veri türlerinin değişimi gibi), Windows, tasarladığınız mimariye bağlı olarak ONNX Runtime ile birleştirebileceğiniz bir dizi süreçler arası iletişim mekanizması (boru hatları, soketler, AppService vb.) sunar.

Öte yandan, ONNX Runtime ayrıca şunları da içerir: optimize edilmiş eğitim yetenekleri ve cihaz üzerinde eğitim (cihaz üzerinde eğitim). Bu senaryolar için, belirli kurulum tabloları, belirli CUDA sürümlerine bağlı sürümler ve aşağıdaki gibi paketler mevcuttur: torch-ort y onnxruntime-trainingBüyük modeller ve gelişmiş eğitim iş akışları için tasarlanmış olsa da, Windows 11'deki çoğu masaüstü uygulamasında çıkarım kısmı yeterli olacaktır.

Bu ekosistemin tamamıyla birlikte, Windows 11 yerel olarak yapay zeka çalıştırmak için çok sağlam bir platform haline geliyor: WinML aracılığıyla sisteme entegre edilmiş ONNX Runtime, neredeyse tüm yaygın diller için NuGet paketleri ve dağıtımları, DirectML veya CUDA aracılığıyla GPU entegrasyonu, herhangi bir modern makinede CPU desteği ve boyutu küçültmek veya belirli donanıma uyum sağlamak için derlemeleri özelleştirme yeteneği mevcut. Bu bileşenleri ve bunların nasıl bir araya geldiğini sağlam bir şekilde anlamak, kullanıcının bilgisayarında mevcut olan hızlanmadan tam olarak yararlanan uygulamalar oluşturmanıza olanak tanırken, aynı zamanda performansı da korumanızı sağlar. veriler üzerinde tam kontrol ve dış hizmetlere bağımlı kalmadan.

Yapay zeka ile görüntülerde nesne tespiti
İlgili makale:
Nesne algılama için yapay zeka: Bu teknoloji görüntülerde nasıl çalışır?