Installare e distribuire Windows ML

Windows ML viene fornito come parte di SDK per app di Windows e supporta due modalità di distribuzione: dipendente dal framework (scelta consigliata) e indipendente. Scegliere in base alle dimensioni, all'aggiornamento e ai requisiti di dipendenza dell'app.

Per altre informazioni su Windows ML, vedere Che cos'è Windows ML.

Avvio rapido

Ecco la versione breve di come installare Windows ML nel progetto:

Per l'installazione dipendente dal framework (scelta consigliata) installare:

Autocontenuto (aumenta le dimensioni dell'app di circa 41 MB)

Per informazioni dettagliate su ogni opzione, vedere le sezioni seguenti.

Requisiti

Note

Con .NET 6 è possibile usare lo Microsoft.Windows.AI.MachineLearning spazio dei nomi per installare i provider di esecuzione, ma Microsoft.ML.OnnxRuntime le API non sono disponibili. Eseguire l'aggiornamento a .NET 8 per accedere alla superficie completa dell'API windows ML.

Che cos'è in Windows ML

Windows ML è costituito da questi file binari:

Binary Descrizione Dimensioni approssimative
Microsoft.Windows.AI.MachineLearning.dll API di Windows ML (ExecutionProviderCataloge così via) ~1 MB
onnxruntime.dll Motore di runtime ONNX ~20 MB
DirectML.dll DirectML: provider di esecuzione GPU incluso ~20 MB
Totale ~41 MB

I fornitori di esecuzione dei vendor (QNN, VitisAI, OpenVINO, NvTensorRtRtx, MIGraphX) non fanno parte di Windows ML stesso. Vengono ottenuti separatamente, sia tramite il ExecutionProviderCatalog in fase di esecuzione, sia pacchettizzati da te stesso. Consulta Accelerare i modelli di intelligenza artificiale.

Scelta di una modalità di distribuzione

Quando si usa Windows ML, è possibile scegliere tra due modalità di distribuzione: dipendente dal framework (scelta consigliata) e indipendente.

Dipendente dal framework (scelta consigliata) Autonomo
Lingue supportate C#, C++/WinRT, Python C#, C++/WinRT, C/C++
Tipi di confezionamento supportato ** Non confezionato e confezionato (MSIX) ** Non confezionato e confezionato (MSIX)
Distribuzione aziendale Supportato Supportato
Dimensioni dell'app Dimensioni inferiori: i file binari di Windows ML sono condivisi a livello di sistema Più grande: i file binari di Windows ML vengono raggruppati con l'app (~41 MB)
Aggiornamenti di Windows ML Automatico: gli utenti ottengono gli aggiornamenti tramite la manutenzione di SDK per app di Windows Manuale: si spedisce una nuova versione quando si sceglie
Dipendenza dal runtime installato Sì: il runtime di SDK per app di Windows deve essere presente No: tutte le dipendenze si trovano nel pacchetto dell'app
Pacchetto NuGet (C#/C++) Microsoft.WindowsAppSDK.ML + Microsoft.WindowsAppSDK.Runtime Microsoft.Windows.AI.MachineLearning o Microsoft.WindowsAppSDK.ML
Ideale per App che richiedono dimensioni minime di download/installazione; App in spedizione tramite Microsoft Store Controllo rigoroso della versione

Le app dipendenti dal framework si basano sul runtime di SDK per app di Windows installato nel computer dell'utente. Per informazioni dettagliate , vedere Architettura di distribuzione per le app dipendenti dal framework .

Nel progetto installare o aggiornare i pacchetti NuGet seguenti:

Note

In alternativa, installare/aggiornare il pacchetto NuGet Microsoft.WindowsAppSDK principale alla versione 1.8.1 o successiva, che include Windows ML e tutte le altre API di SDK per app di Windows e per impostazione predefinita dipende dal framework.

Oltre a ciò, nel file .csproj garantire che WindowsAppSDKSelfContained sia non specificato (non presente) oppure false, così che utilizzi il deployment dipendente dal framework.

Infine, consulta Architettura di distribuzione per le app dipendenti dal framework per apprendere come distribuire il runtime di SDK per app di Windows sui dispositivi degli utenti insieme all'app.

Installazione autonoma

Le app autonome raggruppano tutti i file binari di Windows ML direttamente nell'app. Non è necessaria alcuna dipendenza del runtime esterno, ma l'app sarà più grande. Si tratta dell'impostazione predefinita quando si fa riferimento a Microsoft.Windows.AI.MachineLearning o Microsoft.WindowsAppSDK.ML senza fare riferimento al pacchetto principale Microsoft.WindowsAppSDK o Microsoft.WindowsAppSDK.Runtime. Per informazioni dettagliate, vedere La guida alla distribuzione per le app autonome .

Nel progetto installare o aggiornare i pacchetti NuGet seguenti:

  • Per le app destinate a Windows 10 Build 18362 o versione successiva:
  • In alternativa, per le app destinate a Windows 10 Build 17763 o versione successiva:
    • Installare Microsoft. WindowsAppSDK.ML(aggiunge le API e i file binari Windows ML, l'impostazione predefinita è indipendente e aggiunge il supporto WinRT RegFree per 17763)
  • Non installare Microsoft.WindowsAppSDK.Runtime(questa operazione abilita la modalità dipendente dal framework... rimuoverlo se è attualmente installato)
  • Non installare il pacchetto NuGet Microsoft.WindowsAppSDK principale (in questo modo si abilita la modalità dipendente dal framework... rimuoverlo se è attualmente installato)
  • È possibile installare altri pacchetti di componenti di SDK per app di Windows, ad esempio Microsoft.WindowsAppSDK.AI, purché non si installi il runtime o il pacchetto principale

Note

Se devi usare il pacchetto NuGet principale Microsoft.WindowsAppSDK, aggiornalo alla versione 1.8.1 o successiva, che include Windows ML e tutte le altre API di SDK per app di Windows, e nel tuo .csproj, imposta WindowsAppSDKSelfContained su true per abilitare la modalità autonoma.

Passo successivo

Vedere anche