使用 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++ 編碼,而且大部分開發工作都著重在未來。 您可以遵循下列與特定情況相關的指示,使用 C++/WinRT API:

  • 如果您的目標是 Windows 1803 或更早版本,請參閱 教學課程:將現有的 WinML 應用程式移植到 NuGet 套件
  • 如果您要建立新的 C++ 應用程式,請參閱 教學課程:建立 Windows 機器學習傳統型應用程式 (C++), 並遵循載入模型 的步驟
  • 如果您有現有的 C++ 應用程式(尚未針對 C++/WinRT 設定),請遵循下列步驟來設定 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++ > 語言 > 標準 > ISO C++17 標準 (/std:c++17)
    6. 設定 一致性模式:您的專案屬性中是 (/permissive-)
    7. 另一個要注意的專案屬性是 C/C++ > 一般 > 將警告視為錯誤 。 將此設定為 [Yes(/WX)] 或 [No(/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 標籤。
  • 如需回報錯誤 (bug),請在 GitHub 上提出問題。