Windows ML API's

Zie OnNX-modellen uitvoeren met Windows ML) voor conceptuele richtlijnen.

U kunt de API's in het Microsoft.WindowsAppSDK.ML NuGet-pakket beschouwen als de superset van deze twee sets:

Het NuGet-pakket Microsoft.WindowsAppSDK.ML

De Microsoft Windows ML-runtime biedt API's voor machine learning- en AI-bewerkingen in Windows-toepassingen. Het Microsoft.WindowsAppSDK.ML NuGet-pakket biedt de Windows ML-runtimebestanden .winmd voor gebruik in zowel C#- als C++-projecten.

De pywinrt Python-wielen

De Microsoft Windows ML-runtime maakt gebruik van het pywinrt-project om Python toegang te bieden tot dezelfde Windows ML-API's. De pakketnaam is winui3-Microsoft.Windows.AI.MachineLearning. Er zijn extra pakketten vereist voor het gebruik van de Windows App SDK in Python. Zie het onderwerp ONNX-modellen uitvoeren met Windows ML voor meer informatie.

Windows ML API's

Zie de naamruimte Microsoft.Windows.AI.MachineLearning voor referentiedocumentatie en codevoorbeelden.

Opmerkingen bij de implementatie

De Windows ML-runtime is geïntegreerd met de Windows App SDK en is afhankelijk van de implementatie- en opstartmechanismen:

  • Detecteert automatisch uitvoeringsproviders die compatibel zijn met de huidige hardware
  • Beheert de levensduur en updates van pakketten
  • Verwerkt pakketregistratie en activering
  • Ondersteunt verschillende versies van uitvoeringsproviders

Frameworkafhankelijke implementatie

Windows ML wordt geleverd als een frameworkafhankelijk onderdeel. Dit betekent dat uw app het volgende moet doen:

  • Verwijs naar het belangrijkste NuGet-pakket van de Windows App SDK door een verwijzing toe te voegen aan Microsoft.WindowsAppSDK (aanbevolen)
  • Of verwijzen naar zowel Microsoft.WindowsAppSDK.ML als Microsoft.WindowsAppSDK.Runtime

Zie de documentatie voor Windows-apps verpakken en implementeren voor meer informatie over het implementeren van Windows App SDK-toepassingen.

ONNX Runtime gebruiken met Windows ML

Voor C++-toepassingen, nadat u uitvoeringsproviders hebt geregistreerd, gebruikt u de ONNX Runtime C API rechtstreeks om sessies te maken en deductie uit te voeren.

Gebruik voor C#-toepassingen de ONNX Runtime rechtstreeks voor deductie met behulp van de Microsoft.ML.OnnxRuntime naamruimte.

Gebruik voor Python-toepassingen het ONNX Runtime-wiel onnxruntime-windowsml voor deductie.

Python notities

Windows App SDK initialiseren

Alle Windows ML-aanroepen moeten plaatsvinden nadat de Windows App SDK is geïnitialiseerd. Dit kan worden gedaan met de volgende code:

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

Registratie vindt plaats buiten Windows ML

De ONNX-runtime is zodanig ontworpen dat de Python- en systeemeigen omgevingen gescheiden zijn. En systeemeigen registratie-aanroepen in hetzelfde proces werken niet voor de Python-omgeving. De registratie van uitvoeringsproviders moet dus rechtstreeks met de Python-API worden uitgevoerd.

De verpakte vcruntime van pywinrt verwijderen

Het pywinrt-project bevat een msvcp140.dll in het winrt-runtime-pakket. Dit kan conflicteren met andere pakketten. Verwijder deze dll om dit probleem te voorkomen en installeer de ontbrekende vcruntime-bibliotheken met de vc redistributable

Zie ook