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

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

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

重要

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

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

本教程将介绍以下任务:

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

先决条件

了解代码

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

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

创建工作区

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

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

  2. 在Visual Studio Code活动栏上,选择Azure图标以打开Azure 机器学习视图。

  3. 机器学习 下,右键单击订阅节点并选择创建工作区

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

  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 机器学习 Workspace 按钮,然后按照提示将 TeamWorkspace 设置为默认工作区。

有关工作区的详细信息,请参阅 使用 VS Code 扩展管理 Azure 机器学习 资源

训练模型

在训练过程中训练 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 机器学习提供的特选环境之一,其中包含运行训练脚本所需的 TensorFlow 和其他软件依赖项。 有关特选环境的详细信息,请参阅Azure 机器学习特选环境

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

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

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

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

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

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