Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Per indicazioni concettuali, vedere Eseguire modelli ONNX con Windows ML).
È possibile considerare le API nel pacchetto NuGet Microsoft.WindowsAppSDK.ML come il superset di questi due set:
- API di Windows ML. API di Windows ML nello spazio dei nomi Microsoft.Windows.AI.MachineLearning , ad esempio la classe ExecutionProviderCatalog e i relativi metodi (api di Windows Runtime).
- Le API di ONNX Runtime. Implementazioni di Windows ML (nel pacchetto NuGet Microsoft.WindowsAppSDK.ML ) di determinate API del runtime ONNX (ORT). Per la documentazione, vedere la documentazione dell'API di runtime ONNX. Ad esempio, lo struct OrtCompileApi. Per esempi di codice che usano queste API e altri collegamenti alla documentazione, vedere l'esercitazione Usare Windows ML per eseguire il modello ResNet-50 .
Pacchetto NuGet Microsoft.WindowsAppSDK.ML
Microsoft Windows ML Runtime fornisce API per le operazioni di Machine Learning e intelligenza artificiale nelle applicazioni Windows. Il pacchetto NuGet Microsoft.WindowsAppSDK.ML fornisce i file di runtime .winmd di Windows ML da usare nei progetti C# e C++.
Ruote python pywinrt
Il runtime di Microsoft Windows ML sfrutta il progetto pywinrt per fornire a Python l'accesso alle stesse API di Windows ML. Il nome del pacchetto è winui3-Microsoft.Windows.AI.MachineLearning. Sono necessari pacchetti aggiuntivi per usare Windows App SDK in Python. Per informazioni dettagliate, vedere l'argomento Eseguire modelli ONNX con Windows ML .
API di Windows ML
Per la documentazione di riferimento sulle API ed esempi di codice, vedere lo spazio dei nomi Microsoft.Windows.AI.MachineLearning .
Note sull'implementazione
Il runtime di Windows ML è integrato con il Windows App SDK e si basa sui meccanismi di distribuzione e di avvio.
- Individua automaticamente i provider di esecuzione compatibili con l'hardware corrente
- Gestisce la durata e gli aggiornamenti dei pacchetti
- Gestisce la registrazione e l'attivazione dei pacchetti
- Supporta versioni diverse dei provider di esecuzione
Distribuzione dipendente dal framework
Windows ML viene distribuito come componente dipendente dal framework . Ciò significa che l'app deve:
- Fare riferimento al pacchetto NuGet principale di Windows App SDK aggiungendo un riferimento a
Microsoft.WindowsAppSDK(scelta consigliata) - In alternativa, fare riferimento sia a
Microsoft.WindowsAppSDK.MLche aMicrosoft.WindowsAppSDK.Runtime
Per altre informazioni sulla distribuzione di applicazioni Windows App SDK, vedere la documentazione relativa al pacchetto e alla distribuzione di app di Windows .
Uso di ONNX Runtime con Windows ML
Per le applicazioni C++, dopo la registrazione dei provider di esecuzione, usare direttamente l'API C del runtime ONNX per creare sessioni ed eseguire l'inferenza.
Per le applicazioni C#, utilizzare direttamente il runtime ONNX per effettuare inferenze nello spazio dei Microsoft.ML.OnnxRuntime nomi.
Per le applicazioni Python, usare la rotellina onnxruntime-windowsml di runtime ONNX per l'inferenza.
Note su Python
Inizializzare Windows App SDK
Tutte le chiamate di Windows ML devono essere eseguite dopo l'inizializzazione di Windows App SDK. Questa operazione può essere eseguita con il codice seguente:
from winui3.microsoft.windows.applicationmodel.dynamicdependency.bootstrap import (
InitializeOptions,
initialize
)
with initialize(options = InitializeOptions.ON_NO_MATCH_SHOW_UI):
# Your Windows ML code here
La registrazione si verifica all'esterno di Windows ML
Il runtime ONNX è progettato in modo da separare gli ambienti Python e nativi. E le chiamate di registrazione native nello stesso processo non funzioneranno per l'ambiente Python. Pertanto, la registrazione dei provider di esecuzione deve essere eseguita direttamente con l'API Python.
Rimuovere il vcruntime integrato di pywinrt
Il progetto pywinrt include un msvcp140.dll nel pacchetto winrt-runtime. Questo può essere in conflitto con altri pacchetti. Rimuovere questa DLL per evitare questo problema e installare le librerie vcruntime mancanti con vc redistributable