使用 PyTorch 和 Windows ML 进行图像分类

Header image for PyTorch

本教程将介绍如何使用 PyTorch 训练图像分类神经网络模型,将模型导出为 ONNX 格式,以及如何在 Windows 设备上本地运行的 Windows 机器学习 应用程序中部署该模型。

需要具备 Python 和 C# 编程语言的基本知识。 以前在机器学习方面的经验是加分项,但这不是必需的。

如果要直接安装,请参阅安装 PyTorch

如果已设置 PyTorch,请通过获取数据开始模型训练过程。

准备好处理数据后,可以开始训练模型,然后将其转换为 ONNX 格式

如果你有 ONNX 模型,并且想要了解如何从头开始创建 WinML 应用,请导航到部署模型

注意

如果需要,可以克隆 Windows 机器学习示例存储库,并运行本教程的已完成代码。 可以在此处找到 PyTorch 训练解决方案在此处找到完整的 Windows ML 应用。 如果使用的是 PyTorch 文件,请确保在运行相关 PyTorch 解释器之前进行设置。

方案

在本教程中,我们将创建可在任何 Windows 设备中运行的机器学习图像分类应用程序。 模型将经过训练以识别模式类型,并对所选训练集的 10 个图像标签进行分类。 

PyTorch 的先决条件 - 模型训练:

以下 Windows 发行版支持 PyTorch:

  • Windows 7 和更高版本。 建议使用 Windows 10 或更高版本。
  • Windows Server 2008 R2 和更高版本

若要在 Windows 上使用 Pytorch,必须安装 Python 3.x。 不支持 Python 2.x。

Windows ML 应用部署的先决条件

若要创建和部署 WinML 应用,需要以下各项:

  • Windows 10 版本 1809(内部版本 17763)或更高版本。 可以查看内部版本号,方法是通过 Run 命令 (Windows logo key + R) 运行 winver
  • 适用于内部版本 17763 或更高版本的 Windows SDK。 可在此处获取 SDK。
  • Visual Studio 2017 版本 15.7 或更高版本。 建议使用 Visual Studio 2019,如果改用 VS2017,本教程中的一些屏幕截图可能会有所不同。 可在此处获取 Visual Studio
  • Windows ML 代码生成器 (mlgen) Visual Studio 扩展。 针对 VS 2019VS 2017 下载。
  • 还需要在电脑上启用开发人员模式

注意

Windows ML API 内置于最新版本的 Windows 10(1809 或更高版本)和 Windows Server 2019。 如果目标平台是较早版本的 Windows,可以将 WinML 应用移植到可再发行的 NuGet 包(Windows 8.1 或更高版本)

后续步骤

首先,我们将安装 PyTorch 并配置环境

重要

PyTorch、PyTorch 徽标和任何相关标记都是 Facebook, Inc. 的商标