注释
有新的 Windows ML 接口,它们位于通过 NuGet 提供的 Microsoft.Windows.AI.MachineLearning
命名空间中,取代了2018年发布的此版本的 Windows ML。
有多种方法可以在应用中使用 Windows 机器学习。 实际上,你只需要几个简单的步骤。
获取经过训练的开放式神经网络交换(ONNX)模型,或使用 ONNXMLTools 将在其他 ML 框架中训练的模型转换为 ONNX。
将 ONNX 模型文件添加到应用程序,或使其在目标设备上以其他方式可用。
将模型集成到应用程序代码中,然后生成并部署应用程序。
内置 WinML 解决方案与 NuGet WinML 解决方案
下表重点介绍了适用于 Windows ML 的 In-Box 和 NuGet 包的可用性、分发、语言支持、服务和转发兼容性方面。
性能 | 内置 | NuGet |
---|---|---|
可用性 | Windows 10 版本 1809 或更高版本 | Windows 8.1 或更高版本 |
分销 | 内置于 Windows SDK 中 | 将其打包并分发,作为您应用程序的一部分 |
服务 | Microsoft驱动(客户自动受益) | 开发人员驱动 |
向前兼容性 | 自动使用新功能进行前滚 | 开发人员需要手动更新包 |
当您的应用程序使用内置解决方案运行时,Windows ML 运行时(其中包含 ONNX 模型推理引擎)会在 Windows 10 设备上评估训练模型(如面向服务器部署,则在 Windows Server 2019 上)。 Windows ML 处理硬件抽象,使开发人员能够面向广泛的硅,包括 CPU、GPU,以及将来的 AI 加速器。 Windows ML 硬件加速基于 DirectML 构建,这是一种高性能、低级别的 API,用于运行 DirectX 系列中的 ML 推理。
对于 NuGet 包,这些层显示为下图所示的二进制文件。 Windows ML 内置于 Microsoft.ai.machinelearning.dll中。 它不包含嵌入式 ONNX 运行时,而是将 ONNX 运行时内置到文件中:onnxruntime.dll。 WindowsAI NuGet 包中包含的版本包含一个嵌入在其内部的 DirectML EP。 最终的二进制文件(DirectML.dll)是作为 DirectML 的实际平台代码,构建在内置于 Windows 中的 Direct 3D 和计算驱动程序之上。 这三个二进制文件都包含在 NuGet 版本中,以便与应用程序一起分发。
直接访问 onnxruntime.dll 还允许您针对跨平台场景,同时获取与硬件无关的加速,该加速能够在所有 Windows 设备上实现扩展。
来自Microsoft的其他机器学习解决方案
Microsoft提供各种机器学习解决方案以满足你的需求。 这些解决方案在云、本地和设备本地运行。 有关详细信息,请参阅Microsoft中的机器学习产品选项是什么?
了解详细信息
如果要使用 Windows ML NuGet 包,请参阅 教程:将现有的 WinML 应用移植到 NuGet 包。
有关最新的 Windows ML 功能和修补程序,请参阅我们的 发行说明。
注释
使用以下资源获取有关 Windows ML 的帮助:
- 若要提出或回答有关 Windows ML 的技术问题,请在 Stack Overflow 上使用 windows-machine-learning 标记。
- 若要报告 bug,请在 GitHub 上提交问题。