Udostępnij przez


Zintegrować model w aplikacji za pomocą Windows ML

W tym przewodniku omówimy sposób integrowania modelu z aplikacją systemu Windows przy użyciu interfejsów API uczenia maszynowego systemu Windows. Alternatywnie, jeśli chcesz użyć automatycznego generatora kodu uczenia maszynowego systemu Windows, zapoznaj się z rozwiązaniem mlgen.

Ważne interfejsy API: Windows.AI.MachineLearning

Omówimy podstawowe bloki konstrukcyjne systemu Windows ML, które są następujące:

  • Modele
  • Sesji
  • Urządzenia
  • Powiązania

Będą one używane do ładowania, wiązania i oceniania modeli za pomocą uczenia maszynowego z systemem Windows.

Zalecamy również zapoznanie się z przykładowymi aplikacjami w usłudze GitHub , aby zobaczyć kompleksowe przykłady kodu uczenia maszynowego systemu Windows.

Poniższy film przedstawia te interfejsy API w praktyce w krótkim pokazie.


Korzystanie z interfejsów API WinML w języku C++

Chociaż interfejsy API WinML są dostępne zarówno w języku C++/CX, jak i C++/WinRT, zalecamy korzystanie z wersji C++/WinRT, ponieważ umożliwia bardziej naturalne kodowanie w języku C++ i jest miejscem, w którym większość wysiłków programistycznych będzie skoncentrowana na przyszłości. Możesz postępować zgodnie z poniższymi instrukcjami dotyczącymi konkretnej sytuacji, aby korzystać z interfejsów API języka C++/WinRT:

  • Jeśli używasz systemu Windows 1803 lub starszego, zobacz Samouczek: przenoszenie istniejącej aplikacji WinML do pakietu NuGet.
  • Jeśli tworzysz nową aplikację języka C++, zobacz Samouczek: Tworzenie klasycznej aplikacji Windows Desktop z Machine Learning (C++) i wykonaj kroki do etapu Ładowanie modelu.
  • Jeśli masz istniejącą aplikację języka C++ (która nie jest jeszcze skonfigurowana dla języka C++/WinRT), wykonaj następujące kroki, aby skonfigurować aplikację dla języka C++/WinRT:
    1. Upewnij się, że masz zainstalowaną najnowszą wersję programu Visual Studio 2019 (dowolną wersję).
    2. Upewnij się, że masz zestaw SDK dla systemu Windows 10 w wersji 1803 lub nowszej.
    3. Pobierz i zainstaluj rozszerzenie C++/WinRT Visual Studio (VSIX) z witryny Visual Studio Marketplace.
    4. Dodaj właściwość <CppWinRTEnabled>true</CppWinRTEnabled> do pliku .vcxproj projektu:
      <Project ...>
          <PropertyGroup Label="Globals">
              <CppWinRTEnabled>true</CppWinRTEnabled>
      ...
      
    5. Język C++/WinRT wymaga funkcji ze standardu C++17, więc we właściwościach projektu ustaw C/C++ > Język > Standard języka C++ > ISO C++17 Standard (/std:c++17).
    6. Ustaw tryb zgodności: Tak (/permissive-) w ustawieniach projektu.
    7. Inną właściwością projektu, która ma być świadoma, jest ogólne > traktowanie ostrzeżeń jako błędów w języku C/C++>. Ustaw wartość Tak (/WX) lub Nie (/WX-) na smak. Czasami pliki źródłowe generowane przez narzędzie cppwinrt.exe generują ostrzeżenia do momentu dodania do nich implementacji.
    8. Plik VSIX udostępnia również natywną wizualizację debugowania (natvis) w programie Visual Studio dla projektowanych typów C++/WinRT, zapewniając doświadczenie podobne do debugowania w języku C#. Natvis działa automatycznie dla wersji debugowania. Możesz wyrazić zgodę na jego wersje kompilacyjne, definiując symbol WINRT_NATVIS.
    9. Projekt powinien być teraz skonfigurowany dla języka C++/WinRT. Aby uzyskać więcej informacji, zobacz C++/WinRT .

Uwaga / Notatka

Skorzystaj z następujących zasobów, aby uzyskać pomoc dotyczącą uczenia maszynowego z systemem Windows:

  • Aby zadać lub odpowiedzieć na pytania techniczne dotyczące usługi Windows ML, użyj tagu windows-machine-learning w usłudze Stack Overflow.
  • Aby zgłosić usterkę, popełnij zgłoszenie na GitHubie .