개념 지침은 Windows ML을 사용하여 ONNX 모델 실행을 참조하세요).
Microsoft.WindowsAppSDK.ML NuGet 패키지의 API 는 다음 두 집합의 상위 집합이라고 생각할 수 있습니다.
- Windows ML API. ExecutionProviderCatalog 클래스 및 해당 메서드(Windows 런타임 API)와 같은 Microsoft.Windows.AI.MachineLearning 네임스페이스의 Windows ML API
- ONNX 런타임 API. ONNX 런타임(ORT)에서 특정 API의 Windows ML 구현( Microsoft.WindowsAppSDK.ML NuGet 패키지). 설명서는 ONNX 런타임 API 문서를 참조하세요. 예를 들어 OrtCompileApi 구조체입니다. 이러한 API를 사용하는 코드 예제 및 설명서에 대한 더 많은 링크는 Windows ML을 사용하여 ResNet-50 모델 자습서를 실행합니다 .
Microsoft.WindowsAppSDK.ML NuGet 패키지
Microsoft Windows ML 런타임은 Windows 애플리케이션에서 기계 학습 및 AI 작업을 위한 API를 제공합니다.
Microsoft.WindowsAppSDK.ML NuGet 패키지는 C# 및 C++ 프로젝트에서 사용할 Windows ML 런타임 .winmd 파일을 제공합니다.
pywinrt Python 휠
Microsoft Windows ML 런타임은 pywinrt 프로젝트를 활용하여 동일한 Windows ML API에 대한 Python 액세스를 제공합니다. 패키지 이름은 winui3-Microsoft.Windows.AI.MachineLearning입니다. Python에서 Windows 앱 SDK를 사용하려면 추가 패키지가 필요합니다. 자세한 내용은 Windows ML 토픽을 사용하여 ONNX 모델 실행을 참조하세요.
Windows ML API들
API 참조 설명서 및 코드 예제는 Microsoft.Windows.AI.MachineLearning 네임스페이스를 참조하세요.
구현 참고 사항
Windows ML 런타임은 Windows 앱 SDK와 통합되며 배포 및 부트스트래핑 메커니즘에 의존합니다.
- 현재 하드웨어와 호환되는 실행 공급자를 자동으로 검색합니다.
- 패키지 수명 및 업데이트 관리
- 패키지 등록 및 활성화 처리
- 다양한 버전의 실행 공급자를 지원합니다.
프레임워크 종속 배포
Windows ML은 프레임워크 종속 구성 요소로 제공됩니다. 즉, 앱은 다음 중 하나를 수행해야 합니다.
- 기본 Windows 앱 SDK NuGet 패키지를 참조하려면
Microsoft.WindowsAppSDK에 참조를 추가하십시오 (권장). - 또는
Microsoft.WindowsAppSDK.ML및Microsoft.WindowsAppSDK.Runtime둘 다 참조합니다.
Windows 앱 SDK 애플리케이션 배포에 대한 자세한 내용은 패키지 및 Windows 앱 배포 설명서를 참조하세요.
Windows ML에서 ONNX 런타임 사용
C++ 애플리케이션의 경우 실행 공급자를 등록한 후 ONNX 런타임 C API를 직접 사용하여 세션을 만들고 유추를 실행합니다.
C# 애플리케이션의 경우, Microsoft.ML.OnnxRuntime 네임스페이스를 사용하여 직접 추론을 수행하기 위해 ONNX 런타임을 사용합니다.
Python 애플리케이션의 경우 유추를 위해 별도의 ONNX 런타임 휠(onnxruntime)을 사용합니다. 실험적 릴리스의 경우 인덱onnxruntime-winml==1.22.0.post2스에서 https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/ORT-Nightly/pypi/simple 패키지를 사용하세요.
Python 노트
Windows 앱 SDK 초기화
모든 Windows ML 호출은 Windows 앱 SDK가 초기화된 후에 발생합니다. 이 작업은 다음 코드로 수행할 수 있습니다.
from winui3.microsoft.windows.applicationmodel.dynamicdependency.bootstrap import (
InitializeOptions,
initialize
)
with initialize(options = InitializeOptions.ON_NO_MATCH_SHOW_UI):
# Your Windows ML code here
Windows ML에서 등록이 수행됩니다.
ONNX 런타임은 Python과 네이티브 환경이 분리된 방식으로 설계되었습니다. 동일한 프로세스의 네이티브 등록 호출은 Python 환경에서 작동하지 않습니다. 따라서 실행 공급자 등록은 Python API를 사용하여 직접 수행해야 합니다.
pywinrt의 압축된 vcruntime 제거
pywinrt 프로젝트에는 winrt 런타임 패키지에 msvcp140.dll 포함됩니다. 다른 패키지와 충돌할 수 있습니다. 이 문제를 방지하려면 이 dll을 제거하고 vc 재배포 가능 패키지가 있는 누락된 vcruntime 라이브러리를 설치하세요.