Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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:
- Windows ML-API's. Windows ML-API's in de naamruimte Microsoft.Windows.AI.MachineLearning , zoals de klasse ExecutionProviderCatalog en de bijbehorende methoden (dit zijn Windows Runtime-API's).
- ONNX Runtime-API's. Windows ML-implementaties (in het Microsoft.WindowsAppSDK.ML NuGet-pakket) van bepaalde API's van de ONNX Runtime (ORT). Zie de ONNX Runtime-API-documenten voor documentatie. Bijvoorbeeld de OrtCompileApi-struct. Voor codevoorbeelden die gebruikmaken van deze API's en meer koppelingen naar documentatie, raadpleegt u de zelfstudie Voor Het gebruik van Windows ML om het ResNet-50-model uit te voeren .
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.MLalsMicrosoft.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