使用 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 的應用程式:
- 請確定您已安裝最新版本的 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++ > 語言 > 標準 > ISO C++17 標準 (/std:c++17) 。
- 設定 一致性模式:您的專案屬性中是 (/permissive-) 。
- 另一個要注意的專案屬性是 C/C++ > 一般 > 將警告視為錯誤 。 將此設定為 [Yes(/WX)] 或 [No(/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 標籤。
- 如需回報錯誤 (bug),請在 GitHub 上提出問題。