Windows ML을 사용하여 모델을 앱에 통합
이 가이드에서는 Windows ML API를 사용하여 모델을 Windows 앱에 통합하는 방법을 설명합니다. 대신, Windows ML의 자동 코드 생성기를 사용하려면 mlgen을 확인하세요.
중요 API: Windows.AI.MachineLearning
Windows ML의 다음과 같은 기본 구성 요소를 살펴보겠습니다.
- 모델
- 세션
- 장치
- 바인딩
이러한 요소를 사용하여 Windows ML로 모델을 로드하고, 바인딩하고 평가할 수 있습니다.
GitHub에서 샘플 앱을 살펴보고 엔드투엔드 Windows ML 코드 예제도 확인하는 것이 좋습니다.
다음 비디오는 API가 작동하는 모습을 짧은 데모로 보여줍니다.
C++로 WinML API 사용
WinML API는 C++/CX 및 C++/WinRT에서 모두 사용할 수 있지만 C++/WinRT 버전을 사용하는 것이 좋습니다. C++/WinRT 버전은 보다 자연스러운 C++ 코딩이 가능하며 앞으로 대부분의 개발 노력이 집중될 것이기 때문입니다. C++/WinRT API를 사용하는 특정 상황과 관련된 아래 지침을 참조하세요.
- Windows 1803 이하를 대상으로 하는 경우 자습서: NuGet 패키지에 기존 WinML 앱 포팅을 참조하세요.
- 새 C++ 애플리케이션 을 만드는 경우 자습서: Windows Machine Learning Desktop 애플리케이션 만들기(C++) 를 참조하고 단계를 따라 모델을 로드합니다.
- C++/WinRT에 대해 아직 설정되지 않은 기존 C++ 애플리케이션이 있는 경우 다음 단계에 따라 C++/WinRT용 애플리케이션을 설정합니다.
- 최신 버전의 Visual Studio 2019가 설치되어 있는지 확인합니다(모든 버전).
- Windows 10용 SDK, 버전 1803 이상이 있는지 확인합니다.
- Visual Studio Marketplace에서 C++/WinRT Visual Studio 확장(VSIX)을 다운로드하여 설치합니다.
<CppWinRTEnabled>true</CppWinRTEnabled>
프로젝트의 .vcxproj 파일에 속성을 추가합니다.<Project ...> <PropertyGroup Label="Globals"> <CppWinRTEnabled>true</CppWinRTEnabled> ...
- C++/WinRT에는 C++17 표준의 기능이 필요하기 때문에 프로젝트 속성에서 C/C++ > 언어 > C++ 언어 표준 > ISO C++17 표준(/std:c++17)을 설정합니다.
- 규칙 모드 설정 : 프로젝트 속성에서 예(/permissive-) .
- 알아야 할 또 다른 프로젝트 속성은 C/C++ > 일반 > 경고를 오류로 처리입니다. 이 속성은 필요에 따라 예(/WX) 또는 아니요(/WX-)로 설정하세요. 간혹 cppwinrt.exe 도구로 생성된 소스 파일은 구현을 추가할 때까지 경고를 생성하는 경우가 있습니다.
- VSIX는 C++/WinRT 프로젝션된 형식의 Visual Studio 네이티브 디버그 시각화(natvis)도 제공하여 C# 디버깅과 유사한 경험을 제공합니다. Natvis는 디버그 빌드에서 자동으로 실행됩니다. WINRT_NATVIS 기호를 정의하여 릴리스 빌드를 선택할 수 있습니다.
- 이제 프로젝트가 C++/WinRT에 맞게 설정되었습니다. 자세한 내용은 C++/WinRT를 참조하세요.
관련 항목
참고 항목
Windows ML에 대한 도움말은 다음 리소스를 참조하세요.
- Windows ML에 대한 기술적인 질문을 하거나 질문에 답하려면, Stack Overflow에서 windows-machine-learning 태그를 사용하세요.
- 버그를 보고하려면 GitHub에서 문제를 제출하세요.