rozhraní API pro strojové učení ve Windows

Koncepční pokyny najdete v článku Spouštění modelů ONNX pomocí Windows ML).

Rozhraní API v balíčku NuGet Microsoft.WindowsAppSDK.ML si můžete představit jako nadmnožinu těchto dvou množin:

Balíček NuGet Microsoft.WindowsAppSDK.ML

Modul runtime Microsoft Windows ML poskytuje rozhraní API pro operace strojového učení a umělé inteligence v aplikacích Windows. Balíček NuGet Microsoft.WindowsAppSDK.ML poskytuje soubory modulu runtime Windows ML .winmd pro použití v projektech v jazycích C# i C++.

Pywinrt Python kolečka

Modul runtime Microsoft Windows ML využívá projekt pywinrt k zajištění Python přístupu ke stejným rozhraním API Windows ML. Název balíčku je winui3-Microsoft.Windows. AI. MachineLearning. K použití Windows App SDK v Pythonu se vyžadují další balíčky. Podrobnosti najdete v tématu Spouštění modelů ONNX pomocí Windows ML.

rozhraní API Windows ML

Referenční dokumentaci k rozhraní API a příklady kódu najdete v oboru názvů Microsoft.Windows.AI.MachineLearning.

Poznámky k implementaci

Modul runtime Windows ML je integrovaný s Windows App SDK a spoléhá na jeho mechanismy nasazení a spouštění:

  • Automaticky zjišťuje zprostředkovatele spouštění kompatibilní s aktuálním hardwarem.
  • Spravuje životnost a aktualizace balíčků.
  • Zpracovává registraci a aktivaci balíčku.
  • Podporuje různé verze poskytovatelů spouštění.

Nasazení závislé na rozhraní

Windows ML se dodává jako komponenta závislá na rozhraní. To znamená, že vaše aplikace musí:

  • Odkaz na hlavní Windows App SDK balíček NuGet přidáním odkazu na Microsoft.WindowsAppSDK (doporučeno)
  • Nebo odkazujte na Microsoft.WindowsAppSDK.ML a Microsoft.WindowsAppSDK.Runtime

Další informace o nasazování aplikací Windows App SDK najdete v dokumentaci Vytváření balíčků a nasazování aplikací pro Windows.

Použití modulu runtime ONNX s Windows ML

U aplikací v jazyce C++ po registraci poskytovatelů spouštění použijte přímo rozhraní C API knihovny ONNX Runtime k vytvoření relací a provádění inference.

Pro aplikace jazyka C# použijte modul runtime ONNX přímo k odvozování pomocí oboru názvů Microsoft.ML.OnnxRuntime.

Pro aplikace v jazyce Python použijte pro inferenci balíček wheel ONNX Runtime onnxruntime-windowsml.

Python poznámky

Initialize Windows App SDK

Všechna Windows volání ML by měla proběhnout po inicializaci Windows App SDK. Můžete to udělat pomocí následujícího kódu:

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

Registration dochází mimo Windows ML

Modul runtime ONNX je navržený způsobem, ve kterém jsou Python a nativní prostředí oddělená. Nativní volání pro registraci ve stejném procesu nebudou v prostředí Pythonu fungovat. Registrace zprostředkovatelů spouštění by proto měla být provedena přímo s rozhraním API Python.

Odebrání balíčku vcruntime pywinrtu

Projekt pywinrt zahrnuje msvcp140.dll v balíčku winrt-runtime. To může být v konfliktu s jinými balíčky. Odstraňte tento soubor DLL, abyste předešli tomuto problému, a nainstalujte chybějící knihovny VCRuntime pomocí balíčku VC Redistributable

Viz také