本指南介绍如何训练神经网络模型,以使用 ML.NET 模型生成器对食物的图像进行分类,将模型导出到 ONNX 格式,并在 Windows 设备上本地运行的 Windows 机器学习应用程序中部署模型。 不需要以前在机器学习方面的专业知识,我们将逐步指导你完成该过程。
若要了解如何使用 ML.NET 模型生成器生成和训练模型,可以继续 训练模型。
如果你有模型并想要了解如何从头开始创建 WinML 应用,请导航到完整的 WinML 应用教程。
如果要获取 WinML 应用的预定义解决方案,可以克隆 解决方案文件 并立即对其进行测试。
情景
在本教程中,我们将创建在 Windows 设备上运行的机器学习食品分类应用程序。 将对模型进行训练,使其能识别某些类型的模式,以对食物图像进行分类。输入图像后,模型将返回一个分类标签及其相应的百分比置信度值。
模型训练的先决条件
若要生成和训练模型,你将在 Visual Studio 中使用 ML.NET Model Buider。
- 需要使用 Visual Studio 2019 16.6.1 或更高版本才能使用 ML.NET 模型生成器。 可在此处获取 Visual Studio。
- 需要一个 Azure 帐户才能在 Azure ML 工作区中使用 ML.NET 模型生成器训练模型。 如果不熟悉 Azure,可以注册 Azure 免费帐户。
注释
有兴趣详细了解 Azure 注册选项和 Azure 免费帐户? 请查看 “创建 Azure 帐户”。
ML.NET 模型生成器是一个直观的图形 Visual Studio 扩展,用于生成、训练和部署自定义机器学习模型。 它使用自动化机器学习(AutoML)浏览不同的机器学习算法和设置,以帮助你找到最适合你的方案的算法和设置。
ML.NET Model Builder 随附在 Visual Studio 16.6.1 或更高版本中,只要您安装其中一个 .NET 工作负载。 下载或修改 Visual Studio 时,请确保在安装程序中签入 ML.NET 模型生成器组件。 若要检查 VS 是否具有 ML.NET 模型生成器组件,请转到“扩展”并选择“管理扩展”。 在搜索栏中键入模型生成器以查看扩展结果。
ML.NET 模型生成器目前是预览版功能。 因此,若要使用该工具,在 Visual Studio 中,必须转到工具 > 选项 > 环境 > 预览功能并启用 ML.NET 模型生成器:
注释
有兴趣详细了解 ML.NET 模型生成器及其支持的不同方案? 请查看 模型生成器文档。
Windows ML 应用部署的先决条件
若要创建和部署 Widows ML 应用,需要满足以下条件:
- Windows 10 版本 1809(内部版本 17763)或更高版本。 可以查看内部版本号,方法是通过 Run 命令
winver
运行(Windows logo key + R)
。 - 适用于版本 17763 或更高版本的 Windows SDK。 可以在此处获取 SDK。
- Visual Studio 2019 版本 16.6.1 或更高版本。 可在此处获取 Visual Studio。
- Windows ML Code Generator (mlgen) Visual Studio 扩展。 下载适用于 VS 2019 的扩展。
- 如果决定创建 UWP 应用,则需要在 Visual Studio 中启用通用 Windows 平台开发工作负载。
- 还需要 在电脑上启用开发人员模式
注释
Windows ML API 内置于最新版本的 Windows 10(1809 或更高版本)和 Windows Server 2019 中。 如果目标平台是较旧版本的 Windows,可以将 WinML 应用移植到可再发行的 NuGet 包(Windows 8.1 或更高版本)。
准备数据
必须使用现有数据训练机器学习模型。 在本指南中,你将使用 Kaggle Open 数据集中的食品图像数据集。 此数据集根据公共域许可证进行分发。
重要
若要使用此数据集,您需要遵守使用 Kaggle 站点的条件,以及 Food-11 数据集本身附带的许可证条款。 Microsoft对网站或此数据集不作任何保证或表示。
数据集有三个拆分-评估、训练和验证-并包含 16643 个食品图像,按 11 个主要食品类别分组。 每个类别食品数据集中的图像放置在单独的文件夹中,这使得模型训练过程更加方便。
在此处下载数据集。 请注意,数据集的大小约为 1 GB,可能需要在 Kaggle 网站上创建一个帐户来下载数据。
如果需要,欢迎使用任何其他相关图像数据集。 我们建议在初始训练集中,每个标签至少使用 30 张图像。 训练模型后,还需要收集一些额外的图像来测试模型。
此外,请确保所有训练图像都满足以下条件:
- .jpg、.png、.bmp或 .gif 格式。
- 大小不超过 6MB(预测图像则为 4MB)。
- 最短边的像素不少于 256 像素;自定义视觉服务会自动放大任何小于此的图像。
后续步骤
完成先决条件整理并准备好数据集后,可以继续创建 WinML 模型。 在下一部分中,你将使用 ML.NET 模型生成器来创建和训练分类模型。