Integrar um modelo ao seu aplicativo com o Windows ML
Neste guia, abordaremos como usar as APIs do Windows ML para integrar um modelo ao seu aplicativo do Windows. Como alternativa, se você quiser usar o gerador de código automático do Windows ML, confira mlgen.
APIs importantes: Windows.AI.MachineLearning
Abordaremos os blocos de construção básicos do Windows ML, que são:
- Modelos
- Sessões
- Dispositivos
- Associações
Você os usará para carregar, associar e avaliar seus modelos com o Windows ML.
Também recomendamos dar uma olhada em nossos aplicativos de exemplo no GitHub para ver os exemplos de código do Windows ML de ponta a ponta.
O vídeo a seguir mostra essas APIs em ação em uma demonstração breve.
Usando APIs do WinML em C++
Embora as APIs do WinML em C++ estejam disponíveis em C++/CX e C++/WinRT, é recomendável usar a versão C++/WinRT, pois ela permite uma codificação de C++ mais natural e é nela que a maioria dos esforços de desenvolvimento se concentrará no futuro. Você pode seguir as instruções abaixo, que pertencem à sua situação específica para usar as APIs em C++/WinRT:
- Se você estiver visando o Windows 1803 ou anterior, consulte Tutorial: portar um aplicativo WinML existente para o pacote NuGet.
- Se você estiver criando um novo aplicativo C++, consulte Tutorial: Criar um aplicativo da área de trabalho do Windows Machine Learning (C++) e siga as etapas até Carregar o modelo.
- Se você tiver um aplicativo C++ existente (que ainda não está configurado para C++/WinRT), siga estas etapas para configurar seu aplicativo para C++/WinRT:
- Verifique se você tem a versão mais recente do Visual Studio 2019 instalada (qualquer edição).
- Verifique se você tem o SDK para Windows 10, versão 1803 ou posterior.
- Baixe e instale a VSIX (Extensão do Visual Studio) para C++/WinRT do Visual Studio Marketplace.
- Adicione a propriedade
<CppWinRTEnabled>true</CppWinRTEnabled>
ao arquivo .vcxproj do projeto:<Project ...> <PropertyGroup Label="Globals"> <CppWinRTEnabled>true</CppWinRTEnabled> ...
- O C++/WinRT usa recursos do padrão C++17, então defina C/C++ > Linguagem > Padrão da Linguagem C++ > Padrão ISO C++17 (/std:c++17) nas propriedades do projeto.
- Defina Modo de conformidade: Sim (/permissive-) nas propriedades do projeto.
- Outra propriedade de projeto a ser considerada é C/C++ > Geral > Tratar Avisos como Erros. Defina-a como Sim (/WX) ou Não (/WX-) para fazer um teste. Às vezes, os arquivos de origem gerados pela ferramenta cppwinrt.exe geram avisos até você adicionar a implementação a eles.
- O VSIX também oferece visualização de depuração nativa do Visual Studio (natvis) dos tipos projetados do C++/WinRT; fornecendo uma experiência semelhante à depuração de C#. Natvis é automático para builds de depuração. Você pode os escolher builds de versão do Natvis definindo o símbolo WINRT_NATVIS.
- Agora, seu projeto deve estar configurado para C++/WinRT. Consulte C++/WinRT para obter mais informações.
Tópicos relacionados
Observação
Use os recursos a seguir para obter ajuda com o Windows ML:
- Para fazer perguntas ou responder a perguntas técnicas sobre o Windows ML, use a marca windows-machine-learning no Stack Overflow.
- Para relatar um bug, registre um problema no nosso GitHub.