Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Important
Interfejs API środowiska uruchomieniowego Windows ML jest obecnie eksperymentalny i nie jest obsługiwany do użycia w środowiskach produkcyjnych. Aplikacje testujące ten interfejs API nie powinny być publikowane w Microsoft Store.
W tym temacie pokazano, jak skonfigurować natywny projekt języka C++ do korzystania z interfejsu API środowiska uruchomieniowego i utworzyć wystąpienie IWinMLRuntime. Przejdź dalej do sekcji Uruchamianie modelu przy użyciu interfejsu API środowiska uruchomieniowego Windows ML na potrzeby ładowania modelu, powiązania tensorów i wnioskowania.
Prerequisites
- Wersja systemu Windows obsługiwana przez pakiet
Microsoft.Windows.AI.MachineLearning. Zobacz wymagania dotyczące wdrażania Windows ML. - Visual Studio 2022 lub nowszy z pakietem roboczym Programowanie aplikacji klasycznych za pomocą języka C++.
- Natywny projekt konsolowy C++.
-
Eksperymentalna wersja
2.7.2021-experimentalpakietu NuGet Microsoft.Windows.AI.MachineLearning. - Przykładowy kod na tych stronach korzysta z języka C++20 i pakietu NuGet Microsoft.Windows.CppWinRT.
Note
C++20 i C++/WinRT są wymaganiami tych przykładów dokumentacji, a nie Runtime API. Interfejs API środowiska uruchomieniowego to natywny interfejs ABI w stylu COM, który może być również używany z języka C lub C++ bezpośrednio przez COM, WRL, WIL lub innej biblioteki pomocniczej COM zgodnie z wymaganiami dotyczącymi języka tej aplikacji.
Docelowy cel wykonywania CPU jest ścieżką odniesienia. Dostępność procesora GPU i procesora NPU zależy od urządzenia, możliwości platformy i backendu wykonywania zainstalowanego dla aplikacji.
Konfigurowanie natywnego przywracania pakietów NuGet
Natywne projekty Visual C++ wymagają monikera platformy docelowej NuGet, aby przywracanie pakietów mogło wybrać natywne zasoby systemu Windows. Dodaj tę grupę właściwości blisko początku pliku .vcxproj, przed pierwszym importem Microsoft.Cpp.*:
<PropertyGroup Label="NuGet">
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
<NuGetTargetMoniker>native,Version=v0.0</NuGetTargetMoniker>
<NuGetTargetPlatformIdentifier>Windows</NuGetTargetPlatformIdentifier>
<NuGetTargetPlatformVersion>$(WindowsTargetPlatformVersion)</NuGetTargetPlatformVersion>
</PropertyGroup>
Zainstaluj pakiet Microsoft.Windows.AI.MachineLearning przy użyciu Manage NuGet Packages lub PackageReference. Aby zbudować przykłady na tych stronach, zainstaluj Microsoft.Windows.CppWinRT i ustaw język C++ Language Standard na ISO C++20 Standard (/std:c++20). Pakiet Windows ML dostarcza nagłówki środowiska uruchomieniowego, biblioteki importu i samodzielne biblioteki DLL; C++/WinRT udostępnia udogodnienia winrt::com_ptr, winrt::check_hresult i <winrt/base.h> używane tylko przez przykładowy kod.
Aby uzyskać informacje na temat opcji narzędzia CMake i wdrażania, zobacz Samodzielna instalacja.
Zainicjuj środowisko uruchomieniowe
Zastąp main.cpp następującym kodem:
// 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;
}
Skompiluj dla architektury zgodnej z elementami zawartości pakietu, takimi jak Release|x64. Pomyślna kompilacja potwierdza, że przywracanie NuGet znalazło nagłówki środowiska uruchomieniowego i bibliotekę importu oraz skopiowało wymagane biblioteki DLL obok pliku wykonywalnego.