Windows ML-API:er

Konceptuell vägledning finns i Köra ONNX-modeller med Windows ML).

Du kan se API:erna i Microsoft.WindowsAppSDK.ML NuGet-paketet som supermängden för dessa två uppsättningar:

NuGet-paketet Microsoft.WindowsAppSDK.ML

Microsoft Windows ML-körningen tillhandahåller API:er för maskininlärning och AI-åtgärder i Windows-program. NuGet-paketet Microsoft.WindowsAppSDK.ML innehåller Windows ML-körningsfiler .winmd för användning i både C#- och C++-projekt.

Pywinrt Python-hjulen

Microsoft Windows ML-körningen utnyttjar pywinrt-projektet för att ge Python åtkomst till samma Windows ML-API:er. Paketnamnet är winui3-Microsoft.Windows.AI.MachineLearning. Ytterligare paket krävs för att använda Windows App SDK i Python. Mer information finns i avsnittet Kör ONNX-modeller med Windows ML .

Windows ML-API:er

Information om API-referensdokumentation och kodexempel finns i namnområdet Microsoft.Windows.AI.MachineLearning .

Implementeringsanteckningar

Windows ML-körmiljön är integrerad med Windows App SDK och förlitar sig på dess distributions- och bootstrappingmekanismer.

  • Identifierar automatiskt exekveringsleverantörer som är kompatibla med aktuell maskinvara
  • Hanterar paketlivslängd och uppdateringar
  • Hanterar paketregistrering och aktivering
  • Stöder olika versioner av exekveringsleverantörer

Ramverksberoende distribution

Windows ML levereras som en ramverksberoende komponent. Det innebär att din app måste antingen:

  • Referera till huvudpaketet för Windows App SDK NuGet genom att lägga till en referens till Microsoft.WindowsAppSDK (rekommenderas)
  • Eller referera till både Microsoft.WindowsAppSDK.ML och Microsoft.WindowsAppSDK.Runtime

Mer information om hur du distribuerar Windows App SDK-program finns i dokumentationen paketera och distribuera Windows-appar .

Använda ONNX Runtime med Windows ML

När du har registrerat körningsprovidrar för C++-program använder du ONNX Runtime C API direkt för att skapa sessioner och köra slutsatsdragning.

För C#-program använder du ONNX Runtime direkt för slutsatsdragning med hjälp av Microsoft.ML.OnnxRuntime namnområdet.

För Python-program använder du det separata ONNX Runtime-hjulet (onnxruntime) för slutsatsdragning. För den experimentella versionen, använd onnxruntime-winml==1.22.0.post2-paketet från index https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/ORT-Nightly/pypi/simple.

Python-anteckningar

Initiera Windows App SDK

Alla Windows ML-anrop bör ske när Windows App SDK har initierats. Detta kan göras med följande kod:

from winui3.microsoft.windows.applicationmodel.dynamicdependency.bootstrap import (
    InitializeOptions,
    initialize
)
with initialize(options = InitializeOptions.ON_NO_MATCH_SHOW_UI):
    # Your Windows ML code here

Registreringen sker från Windows ML

ONNX-körningen är utformad på ett sätt där Python och de inbyggda miljöerna är separata. Och interna registreringsanrop i samma process fungerar inte för Python-miljön. Därför bör registreringen av exekveringsleverantörer göras direkt med Python API.

Ta bort pywinrts packade vcruntime

Pywinrt-projektet innehåller en msvcp140.dll i winrt-runtime-paketet. Detta kan vara i konflikt med andra paket. Ta bort den här dll-filen för att undvika det här problemet och installera de saknade vcruntime-biblioteken med vc redistributable

Se även