本指南介绍如何使用 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 版本 1803 或更高版本的 SDK。
- 从 Visual Studio 市场下载并安装 C++/WinRT Visual Studio 扩展 (VSIX)。
- 将
<CppWinRTEnabled>true</CppWinRTEnabled>
属性添加到项目的.vcxproj文件中:<Project ...> <PropertyGroup Label="Globals"> <CppWinRTEnabled>true</CppWinRTEnabled> ...
- C++/WinRT 需要C++17 标准中的功能,因此,在项目属性中,设置 C/C++ > Language C++ Language > Standard ISO C++17 Standard>(/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 标记。
- 若要报告 bug,请在 GitHub 上提交问题。