Nastavení projektu C++ pro Windows ML Runtime API

Important

Rozhraní API modulu Windows ML Runtime je v současné době experimentální a není podporováno pro použití v produkčních prostředích. Aplikace, které toto rozhraní API testují, by se neměly publikovat do Microsoft Store.

V tomto tématu se dozvíte, jak nakonfigurovat nativní projekt C++ tak, aby používal rozhraní Runtime API a vytvořit instanci IWinMLRuntime. Pokračujte na Spuštění modelu pomocí rozhraní API modulu Windows ML Runtime pro načítání modelů, vazbu tensoru a odvozování.

Prerequisites

Note

C++20 a C++/WinRT jsou požadavky těchto ukázek dokumentace, nikoli rozhraní API běhového prostředí. Runtime API je nativní rozhraní ABI ve stylu modelu COM, které je možné využívat také z C nebo C++ pomocí nezpracovaného modelu COM, knihovny WRL, WIL nebo jiného pomocníka modelu COM v závislosti na jazykových požadavcích dané aplikace.

Cíl spuštění CPU je výchozí cesta. Dostupnost GPU a NPU závisí na zařízení, možnostech platformy a back-endu spouštění nainstalovaném pro vaši aplikaci.

Konfigurace nativního obnovení NuGetu

Nativní projekty Visual C++ potřebují cílový identifikátor NuGet, takže obnovení balíčků vybere nativní prostředky systému Windows. Tuto skupinu vlastností přidejte do horní části souboru Microsoft.Cpp.* před prvním importem .vcxproj.

<PropertyGroup Label="NuGet">
  <RestoreProjectStyle>PackageReference</RestoreProjectStyle>
  <NuGetTargetMoniker>native,Version=v0.0</NuGetTargetMoniker>
  <NuGetTargetPlatformIdentifier>Windows</NuGetTargetPlatformIdentifier>
  <NuGetTargetPlatformVersion>$(WindowsTargetPlatformVersion)</NuGetTargetPlatformVersion>
</PropertyGroup>

Microsoft.Windows.AI.MachineLearning Nainstalujte balíček pomocí Spravovat balíčky NuGet nebo PackageReference. Pokud chcete vytvořit ukázky na těchto stránkách, nainstalujte Microsoft.Windows.CppWinRT a nastavte také Standard jazyka C++ na ISO C++20 Standard (/std:c++20). Balíček Windows ML poskytuje hlavičky modulu runtime, knihovny importu a samostatné knihovny DLL; C++/WinRT poskytuje prvky winrt::com_ptr, winrt::check_hresult a <winrt/base.h> používané pouze ve vzorovém kódu.

Informace o možnostech CMake a nasazení najdete v tématu Kompletní instalace.

Inicializujte Runtime

Nahraďte main.cpp následujícím kódem:

// 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;
}

Sestavení pro architekturu, která odpovídá prostředkům balíčku, například Release|x64. Úspěšné sestavení potvrdí, že operace NuGet restore našla hlavičkové soubory modulu Runtime a importní knihovnu a zkopírovala požadované knihovny DLL vedle spustitelného souboru.

Další kroky