Introduzione a Windows Machine Learning

Esistono diversi modi per usare Windows Machine Learning nell'app. Al centro, è sufficiente un paio di semplici passaggi.

  1. Ottenere un modello OPEN Neural Network Exchange (ONNX) sottoposto a training o convertire modelli sottoposti a training in altri framework ml in ONNX con ONNXMLTools.

  2. Aggiungi il file del modello ONNX alla tua applicazione o rendilo disponibile in altro modo sul dispositivo di destinazione.

  3. Integra il modello nel codice dell'applicazione, quindi compila e distribuisci l'applicazione.

Training environment, add model reference, application, Windows ML

Confronto tra soluzione integrata e pacchetto NuGet di WinML

La tabella seguente illustra gli aspetti relativi a disponibilità, distribuzione, supporto linguistico, manutenzione e compatibilità con le versioni precedenti del pacchetto NuGet e della soluzione integrata di Windows ML.

Proprietà Soluzione integrata NuGet
Disponibilità Windows 10, versione 1809 o successive Windows 8.1 o versioni successive
Distribuzione Inclusa in Windows SDK Inserita nel pacchetto e distribuita come parte dell'applicazione
Manutenzione Basata su Microsoft (i clienti possono usufruirne automaticamente) Gestita dagli sviluppatori
Compatibilità con le versioni successive Esegue automaticamente il rollforward con nuove funzionalità Lo sviluppatore deve aggiornare il pacchetto manualmente

Quando l'applicazione viene eseguita con la soluzione integrata, il runtime di Windows ML (che contiene il motore a inferenza del modello ONNX) valuta il modello con training sul dispositivo Windows 10 (o Windows Server 2019 se la destinazione è una distribuzione server). Windows ML gestisce l'astrazione dell'hardware, consentendo agli sviluppatori di specificare come destinazione un'ampia gamma di processori, tra cui CPU, GPU e, in futuro, acceleratori di intelligenza artificiale. L'accelerazione hardware di Windows ML si basa su DirectML, un'API di livello base a prestazioni elevate per l'esecuzione delle inferenze di Machine Learning, che fa parte della famiglia DirectX.

windows ml layers

windows ml nuget package

Per il pacchetto NuGet, questi livelli vengono visualizzati come file binari illustrati nel diagramma seguente. Windows ML è integrato in Microsoft.ai.machinelearning.dll. Non contiene un runtime ONNX incorporato, ma il runtime ONNX è integrato nel file onnxruntime.dll. La versione inclusa nei pacchetti NuGet di WindowsAI contiene un DirectML EP incorporato. Il file binario finale, DirectML.dll, è il codice di piattaforma effettivo come DirectML ed è basato sui driver Direct 3D e di calcolo integrati in Windows. Questi tre file binari sono inclusi nelle versioni di NuGet che puoi distribuire insieme alle applicazioni.

L'accesso diretto a onnxruntime.dll consente anche di usare scenari multipiattaforma, ottenendo la stessa accelerazione hardware indipendente e scalabile in tutti i dispositivi Windows.

Altre soluzioni di Machine Learning da Microsoft

Microsoft offre un'ampia gamma di soluzioni di Machine Learning per qualsiasi esigenza. Queste soluzioni possono essere eseguite nel cloud, in locale e in locale nel dispositivo. Vedere Informazioni sui prodotti di Machine Learning forniti da Microsoft per altre informazioni.

Altre informazioni

Per usare il pacchetto NuGet di Windows ML, vedere Esercitazione: Convertire un'app WinML esistente in un pacchetto NuGet.

Per informazioni sulle funzionalità e le correzioni più recenti per Windows Machine Learning, vedere le note sulla versione.

Nota

Per informazioni su Windows Machine Learning, usa le risorse seguenti:

  • Per porre domande tecniche o rispondere a domande tecniche su Windows Machine Learning, usa il tag windows-machine-learning in Stack Overflow.
  • Per segnalare un bug, registra il problema in GitHub.