Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Importante
A API do Windows ML Runtime atualmente é experimental e não tem suporte para uso em ambientes de produção. Os aplicativos que estão testando essa API não devem ser publicados na Microsoft Store.
Este tópico mostra como configurar um projeto C++ nativo para usar a API do Runtime e criar uma IWinMLRuntime instância. Continue para executar um modelo com a API de runtime do Windows ML para carregamento de modelo, associação de tensor e inferência.
Prerequisites
- Uma versão do Windows compatível com o pacote
Microsoft.Windows.AI.MachineLearning. Consulte requisitos de implantação do Windows ML. - Visual Studio 2022 ou posterior com a carga de trabalho Desenvolvimento para desktop com C++.
- Um projeto de console C++ nativo.
- A versão experimental
2.7.2021-experimentaldo pacote NuGet Microsoft.Windows.AI.MachineLearning. - Para o código de exemplo nestas páginas, C++20 e o pacote NuGet Microsoft.Windows.CppWinRT.
Note
C++20 e C++/WinRT são requisitos desses exemplos de documentação, não da API de Runtime. A API do Runtime é uma ABI nativa no estilo COM que também pode ser acessada a partir de C ou C++ usando COM puro, WRL, WIL ou outro auxiliar COM de acordo com os requisitos de linguagem desse aplicativo.
O destino de execução da CPU é o caminho base. A disponibilidade de GPU e NPU depende do dispositivo, dos recursos da plataforma e do back-end de execução instalado para seu aplicativo.
Configurar a restauração nativa do NuGet
Os projetos nativos do Visual C++ precisam de um target moniker do NuGet para que a restauração de pacote selecione os recursos nativos do Windows. Adicione esse grupo de propriedades próximo à parte superior do .vcxproj arquivo, antes da primeira Microsoft.Cpp.* importação:
<PropertyGroup Label="NuGet">
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
<NuGetTargetMoniker>native,Version=v0.0</NuGetTargetMoniker>
<NuGetTargetPlatformIdentifier>Windows</NuGetTargetPlatformIdentifier>
<NuGetTargetPlatformVersion>$(WindowsTargetPlatformVersion)</NuGetTargetPlatformVersion>
</PropertyGroup>
Instale o Microsoft.Windows.AI.MachineLearning pacote usando Gerenciar Pacotes NuGet ou PackageReference. Para criar os exemplos nessas páginas, instale Microsoft.Windows.CppWinRT e defina o C++ Language Standard como ISO C++20 Standard (/std:c++20). O pacote ML do Windows fornece os cabeçalhos de tempo de execução, bibliotecas de importação e DLLs independentes; C++/WinRT fornece as conveniências winrt::com_ptr, winrt::check_hresult e <winrt/base.h> usadas apenas pelo código de exemplo.
Para opções de CMake e implantação, consulte Instalação independente.
Inicializar o Runtime
Substitua main.cpp pelo seguinte código:
// Copyright (C) Microsoft Corporation. All rights reserved.
#include <Windows.h>
#include <winrt/base.h>
#include <WinMLRuntime.h>
#pragma comment(lib, "windowsapp.lib")
int wmain()
{
winrt::com_ptr<IWinMLRuntime> runtime;
winrt::check_hresult(WinMLCreateRuntime(
__uuidof(IWinMLRuntime),
runtime.put_void()));
return 0;
}
Compile para a arquitetura que corresponde aos ativos do pacote, como Release|x64. Um build bem-sucedido confirma que a restauração do NuGet encontrou os cabeçalhos do Runtime e a biblioteca de importação e copiou as DLLs necessárias ao lado do executável.