Installare e distribuire Windows ML

Windows ML supporta due modalità di distribuzione per Windows Runtime di ML: indipendente e dipendente dal framework. 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'opzione autonoma (aumenta le dimensioni dell'app di circa 41 MB, non si aggiorna automaticamente):

Per l'opzione dipendente dal framework (dimensioni dell'app ridotte, aggiornamenti automatici), installare:

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.

Cosa contiene il runtime di Windows ML

Il runtime di ML Windows è 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 provider di esecuzione dei fornitori (QNN, VitisAI, OpenVINO, NvTensorRtRtx, MIGraphX) non fanno parte di Windows ML Runtime. 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 per il runtime di ML Windows: indipendente e dipendente dal framework.

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

Installazione autonoma

Le app possono scegliere di contenere automaticamente i file binari Windows ML Runtime 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. Se si usano i pacchetti SDK per app di Windows, vedere Guida alla distribuzione per le app autonome per informazioni dettagliate.

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.

Installazione dipendente dal framework

La versione dipendente dal framework del runtime Windows ML è contenuta nel runtime di SDK per app di Windows, che deve essere installato nel computer dell'utente finale. Per dettagli, vedere Distribuzione di app dipendenti dal framework con SDK per app di Windows.

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.

Passo successivo

Vedere anche