Compartilhar via


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 windows. Como alternativa, se você quiser usar o gerador de código automático do Windows ML, confira o mlgen.

APIs importantes: Windows.AI.MachineLearning

Examinaremos os blocos de construção básicos do Windows ML, que são:

  • Modelos
  • Sessões
  • Dispositivos
  • Vinculaçõ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 exemplos de código do Windows ML de ponta a ponta.

O vídeo a seguir mostra essas APIs em ação em uma breve demonstração.


Usando APIs do WinML em C++

Embora as APIs WinML estejam disponíveis em C++/CX e C++/WinRT, é recomendável usar a versão do C++/WinRT, pois ela permite codificação C++ mais natural e é onde a maioria dos esforços de desenvolvimento será focada daqui para frente. Você pode seguir as instruções abaixo que pertencem à sua situação específica para usar as APIs do C++/WinRT:

  • Se você estiver focando no Windows 1803 ou em versões anteriores, 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 para 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:
    1. Verifique se você tem a versão mais recente do Visual Studio 2019 instalada (qualquer edição).
    2. Verifique se você tem o SDK para Windows 10, versão 1803 ou posterior.
    3. Baixe e instale a VSIX (Extensão do Visual Studio) do C++/WinRT no Visual Studio Marketplace.
    4. Adicione a <CppWinRTEnabled>true</CppWinRTEnabled> propriedade ao arquivo de .vcxproj do projeto:
      <Project ...>
          <PropertyGroup Label="Globals">
              <CppWinRTEnabled>true</CppWinRTEnabled>
      ...
      
    5. O C++/WinRT requer recursos do padrão C++17, portanto, nas propriedades do projeto, defina >.
    6. Defina o modo de conformidade: Sim (/permissivo-) nas propriedades do projeto.
    7. Outra propriedade do projeto a ser observada é C/C++ > Geral > Tratar Avisos Como Erros. Defina isso como Sim (/WX) ou Não (/WX-) a gosto. Às vezes, os arquivos de origem gerados pela ferramenta cppwinrt.exe geram avisos até que você adicione sua implementação a eles.
    8. 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.
    9. Seu projeto agora deve ser configurado para C++/WinRT. Consulte C++/WinRT para obter mais informações.

Observação

Use os seguintes recursos para obter ajuda com o Windows ML:

  • Para fazer ou responder perguntas técnicas sobre o Windows ML, use a marca windows-machine learning no Stack Overflow.
  • Para relatar um bug, registre um problema em nosso GitHub.