教程:使用Azure Machine Learning Visual Studio Code扩展训练图像分类模型(预览版)

适用于:Azure CLI ml 扩展 v2 (当前版本)

本文介绍如何训练图像分类模型,以使用 TensorFlow 和 Azure Machine Learning Visual Studio Code 扩展识别手写数字。

重要

此功能目前处于公开预览状态。 此预览版在提供时没有附带服务级别协议,我们不建议将其用于生产工作负荷。 某些功能可能不受支持或者受限。

有关详细信息,请参阅 Azure 预览版的使用条款。

本教程将介绍以下任务:

  • 了解代码
  • 创建工作区
  • 训练模型

先决条件

了解代码

本教程的代码使用 TensorFlow 来训练可以对手写数字 0-9 进行分类的图像分类机器学习模型。 它通过创建一个神经网络,将 28x28 像素图像的像素值作为输入,然后输出 10 个概率的列表,其中每个数字都分类一个。 以下示例显示了数据的外观。

显示 MNIST 数字示例的屏幕截图。

创建工作区

若要在 Azure Machine Learning 中生成应用程序,首先需要创建工作区。 工作区包含用于训练模型的资源以及训练的模型本身。 有关详细信息,请参阅 什么是Azure Machine Learning工作区?

  1. 在Visual Studio Code中,从示例存储库打开 azureml-examples/cli/jobs/single-step/tensorflow/mnist 目录。

  2. 在Visual Studio Code活动栏上,选择Azure图标以打开Azure Machine Learning视图。

  3. 在 Machine Learning 下,右键单击订阅节点并选择创建工作区。

    显示用于创建工作区的选项的屏幕截图。

  4. 将显示规范文件。 使用以下选项配置规范文件,然后将其保存。

    $schema: https://azuremlschemas.azureedge.net/latest/workspace.schema.json
    name: TeamWorkspace
    location: ChinaEast2
    display_name: team-ml-workspace
    description: A workspace for training machine learning models
    tags:
      purpose: training
      team: ml-team
    

    规格文件将在 TeamWorkspace 区域中创建名为 ChinaEast2 的工作区。 规格文件中定义的其余选项为工作区提供友好的命名、说明和标记。

  5. 右键单击规范文件,然后选择“AzureML: 执行 YAML”。 创建资源使用 YAML 规范文件中定义的配置选项,并使用 CLI (v2) 提交作业。 此时,该扩展会请求Azure在帐户中创建新的工作区和依赖资源。 几分钟后,新工作区会显示在订阅节点中。

  6. 将 TeamWorkspace 设置为默认工作区。 通过将此工作区设置为默认工作区,您创建的资源和作业将默认放置在此工作区中。 选择Visual Studio Code状态栏上的 Set Azure Machine Learning Workspace 按钮,然后按照提示将 TeamWorkspace 设置为默认工作区。

有关工作区的详细信息,请参阅 使用 VS Code 扩展管理 Azure Machine Learning 资源。

训练模型

在训练过程中训练 TensorFlow 模型的方式是这样的:针对要分类的每个相应的数字,处理在该模型中嵌入的训练数据和学习模式。

与工作区和计算目标一样,训练作业是使用资源模板定义的。 对于此示例,规范在 job.yml 文件中定义,该文件位于示例存储库中的 azureml-examples/cli/jobs/single-step/tensorflow/mnist 文件夹中。

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: src
command: >
    python train.py
environment: azureml:AzureML-tensorflow-2.12-cuda11@latest
compute: azureml:gpu-cluster
experiment_name: tensorflow-mnist-example
description: Train a basic neural network with TensorFlow on the MNIST dataset.

此规范文件将名为 tensorflow-mnist-example 的训练作业提交到在 gpu-cluster Python 脚本中运行代码的 计算目标。 使用的环境是Azure Machine Learning提供的特选环境之一,其中包含运行训练脚本所需的 TensorFlow 和其他软件依赖项。 有关特选环境的详细信息,请参阅Azure Machine Learning特选环境。

若要提交训练作业,请执行以下操作:

  1. 打开“job.yml”文件。
  2. 在文本编辑器中右键单击该文件,然后选择“AzureML: 执行 YAML”。

此时,会向Azure发送请求,以在工作区中的所选计算目标上运行试验。 此过程需要几分钟。 运行训练作业的时间长度受多种因素(如计算类型和训练数据大小)的影响。 若要跟踪试验的进度,请右键单击当前运行节点,然后在 Azure 门户中选择 View 作业。

出现请求打开外部网站的对话框时,请选择“打开”。

显示作业进度的屏幕截图。

训练模型后,运行节点旁边的状态标签将更新为 “已完成”。