教程:使用 Azure 机器学习 Visual Studio Code 扩展(预览版)训练图像分类 TensorFlow 模型
了解如何使用 TensorFlow 和 Azure 机器学习 Visual Studio Code 扩展训练图像分类模型来识别手写数字。
重要
此功能目前处于公开预览状态。 此预览版在提供时没有附带服务级别协议,我们不建议将其用于生产工作负荷。 某些功能可能不受支持或者受限。
有关详细信息,请参阅适用于 Azure 预览版的补充使用条款。
本教程将介绍以下任务:
- 了解代码
- 创建工作区
- 训练模型
先决条件
- Azure 订阅。 如果没有,请注册以尝试试用版订阅。
- 安装 Visual Studio Code,一种轻量型跨平台代码编辑器。
- Azure 机器学习工作室 Visual Studio Code 扩展。 有关安装说明,请参阅 Azure 机器学习 Visual Studio Code 扩展安装指南
- CLI (v2)。 有关安装说明,请参阅安装、设置和使用 CLI (v2)
- 克隆社区驱动的存储库
git clone https://github.com/Azure/azureml-examples.git
了解代码
本教程的代码使用 TensorFlow 来训练可以对手写数字 0-9 进行分类的图像分类机器学习模型。 它通过创建一个神经网络来实现此目的。该神经网络将“28 像素 x 28 像素”图像的像素值作为输入,输出一个包含 10 个概率的列表,一个概率对应于要分类的一个数字。 下面是数据的外观示例。
创建工作区
若要在 Azure 机器学习中生成应用程序,第一件必须做的事是创建工作区。 工作区包含用于训练模型的资源以及已训练的模型本身。 有关详细信息,请参阅什么是工作区。
在 Visual Studio Code 中,从社区主导的存储库打开 azureml-examples/cli/jobs/single-step/tensorflow/mnist 目录。
在 Visual Studio Code 活动栏上选择 Azure 图标,打开“Azure 机器学习”视图。
在“Azure 机器学习”视图中,右键单击你的订阅节点,然后选择“创建工作区”。
此时会显示规范文件。 用以下选项配置规范文件。
$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
规格文件将在
ChinaEast2
区域中创建名为TeamWorkspace
的工作区。 规格文件中定义的其余选项为工作区提供友好的命名、说明和标记。右键单击规范文件,然后选择“AzureML: 执行 YAML”。 创建资源时将使用 YAML 规范文件中定义的配置选项,并使用 CLI (v2) 提交一个作业。 此时,系统会向 Azure 发出请求,以便在你的帐户中创建新的工作区和相关资源。 几分钟后,新工作区会显示在订阅节点中。
将
TeamWorkspace
设置为默认工作区。 这样会默认将你创建的资源和作业放入该工作区。 在 Visual Studio Code 状态栏上选择“设置 Azure 机器学习工作区”按钮,然后按照提示将TeamWorkspace
设置为默认工作区。
有关工作区的详细信息,请参阅如何在 VS Code 中管理资源。
定型模型
在训练过程中训练 TensorFlow 模型的方式是这样的:针对要分类的每个相应的数字,处理在该模型中嵌入的训练数据和学习模式。
与工作区和计算目标一样,训练作业是使用资源模板定义的。 对于本示例,规格定义见 job.yml 文件,如下所示:
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: src
command: >
python train.py
environment: azureml:AzureML-tensorflow-2.4-ubuntu18.04-py37-cuda11-gpu:48
resources:
� instance_type: Standard_NC12
� instance_count: 3
experiment_name: tensorflow-mnist-example
description: Train a basic neural network with TensorFlow on the MNIST dataset.
此规格文件将名为 tensorflow-mnist-example
的、用于运行 train.py Python 脚本中的代码的训练作业提交到最近创建的 gpu-cluster
计算机目标。 使用的环境是 Azure 机器学习提供的特选环境之一,其中包含 TensorFlow 以及运行训练脚本所需的其他软件依赖项。 有关特选环境的详细信息,请参阅 Azure 机器学习特选环境。
若要提交训练作业,请执行以下操作:
- 打开“job.yml”文件。
- 在文本编辑器中右键单击该文件,然后选择“AzureML: 执行 YAML”。
此时系统会向 Azure 发送请求,以便在工作区中所选的计算目标上运行试验。 此过程需要几分钟。 运行训练作业的时间长度受多种因素(如计算类型和训练数据大小)的影响。 若要跟踪试验进度,请右键单击当前的运行节点,然后选择“在 Azure 门户中查看作业”。
出现请求打开外部网站的对话框时,请选择“打开”。
训练完模型后,运行节点旁边的状态标签会更新为“已完成”。
后续步骤
- 启动与 Azure 机器学习集成的 Visual Studio Code(预览版)
- 若要详细了解如何在本地编辑、运行和调试代码,请参阅 Python hello-world 教程。
- 使用远程 Jupyter 服务器在 Visual Studio Code 中运行 Jupyter Notebook。
- 若要详细了解如何在 Visual Studio Code 外部使用 Azure 机器学习进行训练,请参阅教程:使用 Azure 机器学习训练和部署模型。