Interfejsy API uczenia maszynowego systemu Windows

Aby uzyskać wskazówki koncepcyjne, zobacz Uruchamianie modeli ONNX z systemem Windows ML).

Interfejsy API w pakiecie NuGet Microsoft.WindowsAppSDK.ML można traktować jako nadzbiór tych dwóch zestawów:

Pakiet NuGet Microsoft.WindowsAppSDK.ML

Środowisko uruchomieniowe Microsoft Windows ML udostępnia interfejsy API dla operacji uczenia maszynowego i sztucznej inteligencji w aplikacjach systemu Windows. Pakiet Microsoft.WindowsAppSDK.ML NuGet udostępnia pliki środowiska uruchomieniowego uczenia maszynowego .winmd systemu Windows do użycia zarówno w projektach C#, jak i C++.

Koła pywinrt języka Python

Środowisko uruchomieniowe microsoft Windows ML korzysta z projektu pywinrt w celu zapewnienia dostępu języka Python do tych samych interfejsów API uczenia maszynowego systemu Windows. Nazwa pakietu to winui3-Microsoft.Windows.AI.MachineLearning. Do korzystania z zestawu SDK aplikacji systemu Windows w języku Python są wymagane dodatkowe pakiety. Aby uzyskać szczegółowe informacje, zobacz temat Run ONNX models with Windows ML (Uruchamianie modeli ONNX z systemem Windows ML ).

Interfejsy API uczenia maszynowego systemu Windows

Aby uzyskać dokumentację referencyjną interfejsu API i przykłady kodu, zobacz przestrzeń nazw Microsoft.Windows.AI.MachineLearning .

Uwagi dotyczące implementacji

Środowisko uruchomieniowe uczenia maszynowego systemu Windows jest zintegrowane z zestawem SDK aplikacji systemu Windows i opiera się na jego mechanizmach wdrażania i uruchamiania:

  • Automatycznie odnajduje dostawców usług wykonawczych zgodnych z aktualnym sprzętem.
  • Zarządza okresem istnienia i aktualizacjami pakietów
  • Obsługuje rejestrację i aktywację pakietu
  • Obsługuje różne wersje dostawców usług wykonawczych

Wdrożenie zależne od struktury

Usługa Windows ML jest dostarczana jako składnik zależny od platformy . Oznacza to, że aplikacja musi:

  • Dodaj odwołanie do głównego pakietu NuGet Windows App SDK, dodając odwołanie do Microsoft.WindowsAppSDK (zalecane)
  • Lub, odwołaj się również do obu Microsoft.WindowsAppSDK.ML i Microsoft.WindowsAppSDK.Runtime

Aby uzyskać więcej informacji na temat wdrażania aplikacji zestawu SDK aplikacji systemu Windows, zobacz dokumentację Package and deploy Windows apps (Pakowanie i wdrażanie aplikacji systemu Windows ).

Używanie środowiska uruchomieniowego ONNX z systemem Windows ML

W przypadku aplikacji języka C++, po zarejestrowaniu dostawców wykonania, użyj bezpośrednio interfejsu API środowiska uruchomieniowego ONNX do tworzenia sesji i przeprowadzania wnioskowania.

W przypadku aplikacji języka C# użyj środowiska uruchomieniowego ONNX bezpośrednio do wnioskowania przy użyciu Microsoft.ML.OnnxRuntime przestrzeni nazw.

W przypadku aplikacji języka Python użyj koła onnxruntime-windowsml środowiska uruchomieniowego ONNX w celu wnioskowania.

Uwagi dotyczące języka Python

Inicjowanie zestawu SDK aplikacji systemu Windows

Wszystkie wywołania uczenia maszynowego systemu Windows powinny wystąpić po zainicjowaniu zestawu SDK aplikacji systemu Windows. Można to zrobić za pomocą następującego kodu:

from winui3.microsoft.windows.applicationmodel.dynamicdependency.bootstrap import (
    InitializeOptions,
    initialize
)
with initialize(options = InitializeOptions.ON_NO_MATCH_SHOW_UI):
    # Your Windows ML code here

Rejestracja jest wykonywana poza systemem Windows ML

Środowisko uruchomieniowe ONNX jest zaprojektowane w sposób, w którym środowiska python i natywne są oddzielone. Wywołania natywnej rejestracji w tym samym procesie nie będą działać w środowisku języka Python. W związku z tym rejestracja dostawców wykonywania powinna odbywać się bezpośrednio przy użyciu interfejsu API języka Python.

Usuń pakowany vcruntime z pywinrt

Projekt pywinrt zawiera msvcp140.dll w pakiecie winrt-runtime. Może to powodować konflikt z innymi pakietami. Usuń tę bibliotekę dll, aby uniknąć tego problemu i zainstalować brakujące biblioteki vcruntime przy użyciu pakietu redystrybucyjnego vc

Zobacz także