Integrare un modello in un'app con Windows Machine Learning
Questa guida illustrerà come usare le API di Windows Machine Learning per integrare un modello in un'app di Windows. In alternativa, se vuoi usare il generatore di codice automatico di Windows Machine Learning, vedi mlgen.
API importanti: Windows.AI.MachineLearning
Verranno esaminati i componenti di base di Windows Machine Learning, ovvero:
- Modelli
- Sessioni
- Dispositivi
- Bindings
Questi componenti verranno usati per caricare, associare e valutare i modelli con Windows Machine Learning.
È consigliabile inoltre esaminare le app di esempio su GitHub per vedere esempi di codice di Windows Machine Learning end-to-end.
Il video seguente mostra queste API in azione in una breve demo.
Uso delle API WinML inC++
Anche se le API WinML sono disponibili sia in C++/CX che in C++/WinRT, è consigliabile usare la versione C++/WinRT, perché consente una codifica C++ più naturale ed è il punto su cui si concentrerà la maggior parte delle attività di sviluppo andando avanti. Puoi seguire le istruzioni riportate di seguito relative al tuo caso specifico per usare le API C++/WinRT:
- Se hai come destinazione Windows 1803 o versioni precedenti, vedi Esercitazione: Convertire un'app WinML esistente in un pacchetto NuGet.
- Se si sta creando una nuova applicazione C++, vedere Esercitazione: Creare un'applicazione Desktop di Windows Machine Learning (C++) e seguire i passaggi per caricare il modello.
- Se si dispone di un'applicazione C++ esistente (che non è già configurata per C++/WinRT), seguire questa procedura per configurare l'applicazione per C++/WinRT:
- Verifica che sia installata la versione più recente di Visual Studio 2019 (qualsiasi edizione).
- Assicurati di disporre dell'SDK per Windows 10 versione 1803 o successive.
- Scarica e installa l'estensione di Visual Studio C++/WinRT (VSIX) da Visual Studio Marketplace.
- Aggiungere la
<CppWinRTEnabled>true</CppWinRTEnabled>
proprietà al file vcxproj del progetto:<Project ...> <PropertyGroup Label="Globals"> <CppWinRTEnabled>true</CppWinRTEnabled> ...
- C++/WinRT richiede funzionalità dello standard C++17, quindi nelle proprietà del progetto impostare C/C++ > Language > Standard ISO C++17 Standard > (/std:c++17).
- Impostare la modalità di conformità: Sì (/permissive-) nelle proprietà del progetto.
- Un'altra proprietà del progetto da tenere presente è C/C++ > Generale > considera gli avvisi come errori. Imposta questa proprietà su Sì (/WX) o No (/WX-) a seconda delle esigenze. In alcuni casi, i file di origine generati dallo strumento cppwinrt.exe generano avvisi fino a quando non aggiungi l'implementazione.
- VSIX offre anche la visualizzazione di debug nativo di Visual Studio (natvis) di tipi proiettati C++/WinRT, fornendo un'esperienza simile al debug C#. Natvis è automatico per le build di debug. Puoi acconsentire esplicitamente alle build di rilascio definendo il simbolo WINRT_NATVIS.
- Il progetto ora dovrebbe essere configurato per C++/WinRT. Per altre informazioni, vedi C++/WinRT.
Argomenti correlati
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.