Menyiapkan proyek C++ untuk WINDOWS ML Runtime API

Important

API ML Runtime Windows saat ini bersifat eksperimental dan tidak didukung untuk digunakan di lingkungan produksi. Aplikasi yang menguji API ini tidak boleh diterbitkan ke Microsoft Store.

Topik ini menunjukkan kepada Anda cara mengonfigurasi proyek C++ asli untuk menggunakan API Runtime dan membuat IWinMLRuntime instans. Lanjutkan menjalankan model dengan WINDOWS ML Runtime API untuk pemuatan model, pengikatan tensor, dan inferensi.

Prerequisites

Note

C++20 dan C++/WinRT adalah persyaratan sampel dokumentasi ini, bukan dari API Runtime. Runtime API adalah ABI bergaya COM asli yang juga dapat dikonsumsi dari C atau C++ dengan menggunakan COM mentah, WRL, WIL, atau com helper lain di bawah persyaratan bahasa aplikasi tersebut.

Target eksekusi CPU adalah jalur acuan. Ketersediaan GPU dan NPU tergantung pada perangkat, kemampuan platform, dan backend eksekusi yang diinstal untuk aplikasi Anda.

Mengonfigurasi pemulihan paket NuGet asli

Proyek Visual C++ asli memerlukan moniker target NuGet sehingga pemulihan paket memilih aset Windows asli. Tambahkan grup properti ini di dekat bagian atas file .vcxproj, sebelum impor pertama Microsoft.Cpp.*:

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

Instal paket Microsoft.Windows.AI.MachineLearning dengan menggunakan Kelola Paket NuGet atau PackageReference. Untuk membuat sampel di halaman ini, instal Microsoft.Windows.CppWinRT dan atur C++ Language Standard ke ISO C++20 Standard (/std:c++20). Paket Windows ML memasok header Runtime, pustaka impor, dan DLL mandiri; C++/WinRT memasok winrt::com_ptr, winrt::check_hresult, dan <winrt/base.h> kemudahan yang hanya digunakan oleh kode sampel.

Untuk opsi CMake dan deployment, lihat Instalasi mandiri.

Inisialisasi Runtime

Ganti main.cpp dengan kode berikut:

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

Bangun untuk arsitektur yang cocok dengan aset paket, seperti Release|x64. Build yang berhasil mengonfirmasi bahwa pemulihan NuGet menemukan header Runtime dan pustaka impor serta menyalin DLL yang diperlukan di samping berkas yang dapat dieksekusi.

Langkah berikutnya