다음을 통해 공유


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용 애플리케이션을 설정합니다.
    1. 최신 버전의 Visual Studio 2019가 설치되어 있는지 확인합니다(모든 버전).
    2. Windows 10용 SDK, 버전 1803 이상이 있는지 확인합니다.
    3. Visual Studio Marketplace에서 C++/WinRT Visual Studio 확장(VSIX)을 다운로드하여 설치합니다.
    4. <CppWinRTEnabled>true</CppWinRTEnabled> 프로젝트의 .vcxproj 파일에 속성을 추가합니다.
      <Project ...>
          <PropertyGroup Label="Globals">
              <CppWinRTEnabled>true</CppWinRTEnabled>
      ...
      
    5. C++/WinRT에는 C++17 표준의 기능이 필요하기 때문에 프로젝트 속성에서 C/C++ > 언어 > C++ 언어 표준 > ISO C++17 표준(/std:c++17)을 설정합니다.
    6. 규칙 모드 설정 : 프로젝트 속성에서 예(/permissive-) .
    7. 알아야 할 또 다른 프로젝트 속성은 C/C++ > 일반 > 경고를 오류로 처리입니다. 이 속성은 필요에 따라 예(/WX) 또는 아니요(/WX-)로 설정하세요. 간혹 cppwinrt.exe 도구로 생성된 소스 파일은 구현을 추가할 때까지 경고를 생성하는 경우가 있습니다.
    8. VSIX는 C++/WinRT 프로젝션된 형식의 Visual Studio 네이티브 디버그 시각화(natvis)도 제공하여 C# 디버깅과 유사한 경험을 제공합니다. Natvis는 디버그 빌드에서 자동으로 실행됩니다. WINRT_NATVIS 기호를 정의하여 릴리스 빌드를 선택할 수 있습니다.
    9. 이제 프로젝트가 C++/WinRT에 맞게 설정되었습니다. 자세한 내용은 C++/WinRT를 참조하세요.

참고 항목

Windows ML에 대한 도움말은 다음 리소스를 참조하세요.

  • Windows ML에 대한 기술적인 질문을 하거나 질문에 답하려면, Stack Overflow에서 windows-machine-learning 태그를 사용하세요.
  • 버그를 보고하려면 GitHub에서 문제를 제출하세요.