API di Windows ML

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:

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.ML che a Microsoft.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

Vedere anche