Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Importante
A interface API do Windows ML Runtime está atualmente em fase experimental e não é suportada para utilização em ambientes de produção. As aplicações que testam esta API não devem ser publicadas na Microsoft Store.
Este tópico mostra-te como configurar um projeto nativo em C++ para usar a API de Runtime e criar uma IWinMLRuntime instância. Continuar a executar um modelo com a API de execução do Windows ML para carregamento de modelos, ligação de tensores e inferência.
Prerequisites
- Uma versão para Windows suportada pelo pacote
Microsoft.Windows.AI.MachineLearning. Consulte os requisitos de implementação do Windows ML. - Visual Studio 2022 ou posterior com a carga de trabalho Desenvolvimento para ambiente de trabalho com C++.
- Um projeto nativo de consola C++.
- A versão experimental
2.7.2021-experimentaldo pacote NuGet Microsoft.Windows.AI.MachineLearning. - Para o código de exemplo nestas páginas, são necessários o C++20 e o pacote NuGet Microsoft.Windows.CppWinRT.
Note
C++20 e C++/WinRT são requisitos destes exemplos de documentação, não da API de Runtime. A API de Runtime é uma ABI nativa ao estilo COM que também pode ser consumida em C ou C++ utilizando raw COM, WRL, WIL ou outro auxiliar COM de acordo com os requisitos da linguagem dessa aplicação.
O alvo de execução da CPU é o caminho base. A disponibilidade da GPU e NPU depende do dispositivo, das capacidades da plataforma e do backend de execução instalado na sua aplicação.
Configurar a restauração nativa do NuGet
Projetos nativos Visual C++ precisam de um moniker de destino NuGet, por isso o restauro de pacotes seleciona os recursos nativos do Windows. Adicione este grupo de propriedades perto do topo do ficheiro .vcxproj, antes da primeira importação Microsoft.Cpp.*:
<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 Gerir Pacotes NuGet ou PackageReference. Para construir os exemplos nestas páginas, instale Microsoft.Windows.CppWinRT também e defina C++ Language Standard para ISO C++20 Standard (/std:c++20). O pacote Windows ML fornece os cabeçalhos de Runtime, bibliotecas de importação e DLLs autónomas; C++/WinRT fornece as conveniências winrt::com_ptr, winrt::check_hresult e <winrt/base.h> usadas apenas pelo código de exemplo.
Para CMake e opções de implementação/distribuição, consulte Instalação autónoma.
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;
}
Build para a arquitetura que corresponde aos assets do pacote, como Release|x64. Uma compilação bem-sucedida confirma que a restauração do NuGet encontrou os cabeçalhos de runtime e a biblioteca de importação e copiou as DLLs necessárias ao lado do executável.