模型生成器 Azure 训练资源
以下指南可帮助你详细了解如何使用模型生成器在 Azure 中训练模型的资源。
什么是 Azure 机器学习试验?
Azure 机器学习试验是在 Azure 上运行模型生成器训练之前需要创建的资源。
试验封装了一个或多个机器学习训练运行的配置和结果。 试验属于特定工作区。 首次创建试验时,将在工作区中注册其名称。 任何后续运行(如果使用相同的试验名称)将记录为同一实验的一部分。 否则,将创建一个新试验。
什么是 Azure 机器学习工作区?
工作区是一种 Azure 机器学习资源,可为在训练运行过程中创建的所有 Azure 机器学习资源和项目提供中心位置。
若要创建 Azure 机器学习工作区,需要满足以下条件:
- 名称:工作区的名称介于 3 到 33 个字符之间。 名称只能包含字母数字字符和连字符。
- 区域:将工作区和资源部署到的数据中心的地理位置。 建议选择靠近你或客户的位置。
- 资源组:包含 Azure 解决方案所有相关资源的容器。
什么是 Azure 机器学习计算?
Azure 机器学习计算是用于训练的基于云的 Linux VM。
若要创建 Azure 机器学习计算,需要以下值:
名称:2 到 16 个字符之间的计算名称。 名称只能包含字母数字字符和连字符。
计算大小。
模型生成器可以使用以下 GPU 优化的计算类型之一:
大小 vCPU 内存:GiB 临时存储(SSD) GiB GPU GPU 内存:GiB 最大数据磁盘数 最大 NIC Standard_NC12 12 112 680 2 24 48 2 Standard_NC24 24 224 1440 4 48 64 4 有关 GPU 优化计算类型的更多详细信息,请访问 NC 系列 Linux VM 文档。
计算优先级。
- 低优先级:适用于执行时间较短的任务。 任务可能会受到中断和可用性不足的影响。 此选项通常成本较低,因为它利用 Azure 中的剩余容量。
- 专用:适用于任何持续时间的任务,尤其是长时间运行的作业。 任务不受中断或可用性不足的影响。 此选项的成本通常更高,因为它会在 Azure 中为任务保留一组专用的计算资源。
训练
Azure 上的训练仅适用于模型生成器图像分类方案。 用于训练这些模型的算法是基于 ResNet50 体系结构的深度神经网络。 训练过程需要一些时间,时间量可能因所选计算大小以及数据量而异。 可以通过在 Visual Studio 中选择“在 Azure 门户中监视当前运行”链接来跟踪运行的进度。
结果
训练完成后,将使用以下后缀将两个项目添加到解决方案:
ConsoleApp:一个 C# 控制台应用,它提供初学者代码来生成预测管道并进行预测。
模型:C# .NET Standard 应用,其中包含定义输入和输出模型数据的架构的数据模型以及以下资产:
- bestModel.onnx:开放式神经网络交换(ONNX)格式的模型的序列化版本。 ONNX 是 AI 模型的开放源代码格式,支持 ML.NET、PyTorch 和 TensorFlow 等框架之间的互操作性。
- bestModelMap.json:进行预测时使用的类别列表,用于将模型输出映射到文本类别。
- MLModel.zip:ML.NET 预测管道的序列化版本,它使用模型序列化版本 bestModel.onnx,以使用
bestModelMap.json
文件进行预测和映射输出。
使用机器学习模型
模型 项目中的 ModelInput
和 ModelOutput
类分别定义模型的预期输入和输出的架构。
在图像分类方案中,ModelInput
包含两列:
-
ImageSource
:图像位置的字符串路径。 -
Label
:图像所属的实际类别。Label
仅在训练时用作输入,在进行预测时不需要提供。
ModelOutput
包含两列:
-
Prediction
:图像的预测类别。 -
Score
:所有类别的概率列表(最高属于Prediction
)。
故障 排除
无法创建计算
如果在创建 Azure 机器学习计算期间发生错误,则计算资源可能仍然存在,处于错误状态。 如果尝试使用相同的名称重新创建计算资源,操作将失败。 若要修复此错误,请进行以下任一操作:
- 使用其他名称创建新计算
- 转到 Azure 门户并删除原始计算资源