Partilhar via


Integrar um modelo em 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 automático de código 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
  • Vínculos

Você os usará para carregar, vincular 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 de ML do Windows de ponta a ponta.

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


Usando APIs WinML em C++

Embora as APIs do WinML estejam disponíveis em C++/CX e C++/WinRT, recomendamos o uso da versão C++/WinRT, pois permite uma codificação C++ mais natural e é onde a maioria dos esforços de desenvolvimento será focada no futuro. Você pode seguir as instruções abaixo que dizem respeito à sua situação específica para usar as APIs 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 de á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:
    1. Verifique se você tem a versão mais recente do Visual Studio 2019 instalada (qualquer edição).
    2. Certifique-se de que tem o SDK para Windows 10, versão 1803 ou posterior.
    3. Baixe e instale o C++/WinRT Visual Studio Extension (VSIX) do Visual Studio Marketplace.
    4. Adicione a <CppWinRTEnabled>true</CppWinRTEnabled> propriedade ao arquivo .vcxproj do projeto:
      <Project ...>
          <PropertyGroup Label="Globals">
              <CppWinRTEnabled>true</CppWinRTEnabled>
      ...
      
    5. C++/WinRT requer recursos do padrão C++17, portanto, nas propriedades do projeto, defina C/C++ > Language > C++ Language Standard > ISO C++17 Standard (/std:c++17).
    6. Definir modo de conformidade: Sim (/permissive-) nas propriedades do seu projeto.
    7. Outra propriedade do projeto a ter em atenção é >. Defina 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 ao utilizador a visualização de depuração nativa do Visual Studio, conhecida como "natvis", de tipos projetados em C++/WinRT, proporcionando uma experiência semelhante à depuração em C#. Natvis é automático para compilações de depuração. Você pode optar por suas compilações de lançamento 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 a perguntas técnicas sobre o Windows ML, use a tag windows-machine-learning no Stack Overflow.
  • Para relatar um bug, registre um problema em nosso GitHub.