• Azure 机器学习 - 使用 Visual Studio Code训练图像分类 TensorFlow 模型


    了解如何使用 TensorFlow 和 Azure 机器学习 Visual Studio Code 扩展训练图像分类模型来识别手写数字。

    关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。

    file

    一、环境准备


    二、了解代码

    本教程的代码使用 TensorFlow 来训练可以对手写数字 0-9 进行分类的图像分类机器学习模型。 它通过创建一个神经网络来实现此目的。该神经网络将“28 像素 x 28 像素”图像的像素值作为输入,输出一个包含 10 个概率的列表,一个概率对应于要分类的一个数字。 下面是数据的外观示例。

    file


    三、创建工作区

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

    1. 在 Visual Studio Code 中,从社区主导的存储库打开 azureml-examples/cli/jobs/single-step/tensorflow/mnist 目录。

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

    3. 在“Azure 机器学习”视图中,右键单击你的订阅节点,然后选择“创建工作区”。
      file

    4. 此时会显示规范文件。 用以下选项配置规范文件。

        $schema: https://azuremlschemas.azureedge.net/latest/workspace.schema.json
        name: TeamWorkspace
        location: WestUS2
        display_name: team-ml-workspace
        description: A workspace for training machine learning models
        tags:
          purpose: training
          team: ml-team
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

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

    1. 右键单击规范文件,然后选择“AzureML: 执行 YAML”。 创建资源时将使用 YAML 规范文件中定义的配置选项,并使用 CLI (v2) 提交一个作业。 此时,系统会向 Azure 发出请求,以便在你的帐户中创建新的工作区和相关资源。 几分钟后,新工作区会显示在订阅节点中。

    2. TeamWorkspace 设置为默认工作区。 这样会默认将你创建的资源和作业放入该工作区。 在 Visual Studio Code 状态栏上选择“设置 Azure 机器学习工作区”按钮,然后按照提示将 TeamWorkspace 设置为默认工作区。

    有关工作区的详细信息,请参阅如何在 VS Code 中管理资源


    四、创建用于训练的 GPU 群集

    计算目标是在其中运行训练作业的计算资源或环境。 有关详细信息,请参阅 Azure 机器学习计算目标文档

    1. 在“Azure 机器学习”视图中,展开你的工作区节点。

    2. 右键单击工作区的“计算”节点内的“计算群集”节点,然后选择“创建计算”

    file

    1. 此时会显示规范文件。 用以下选项配置规范文件。
       $schema: https://azuremlschemas.azureedge.net/latest/compute.schema.json
       name: gpu-cluster
       type: amlcompute
       size: Standard_NC12
       
       min_instances: 0
       max_instances: 3
       idle_time_before_scale_down: 120
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    规格文件将创建名为 `gpu-cluster` 的 GPU 群集,其中最多包含 3 个 Standard\_NC12 VM 节点,在处于非活动状态 120 秒后,该群集将自动纵向缩减为 0 个节点。
    
    有关 VM 大小的详细信息,请参阅 [Azure 中的 Linux 虚拟机大小](https://learn.microsoft.com/zh-cn/azure/virtual-machines/sizes?view=azureml-api-2)。
    
    • 1
    • 2
    • 3
    1. 右键单击规范文件,然后选择“AzureML: 执行 YAML”。

    几分钟后,新计算目标会出现在工作区的“计算”>“计算群集”节点中。


    五、定型模型

    在训练过程中训练 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
    compute: azureml:gpu-cluster
    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 机器学习特选环境

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

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

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

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

    file

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

    关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。

  • 相关阅读:
    P8 服务拆分-服务远程调用
    conda常用命令合集
    探索云原生时代:技术驱动的业务架构革新
    nginx目录穿越
    40. 干货系列从零用Rust编写负载均衡及代理,websocket的实现
    【leetcode】【剑指offer Ⅱ】074. 合并区间
    Spring Data JPA渐进式学习--如何自定义查询方法呢?
    Ubuntu上运行ProbLog程序的基本方法
    《golang设计模式》第二部分·结构型模式-06-享元模式(Flyweight)
    Go For Web:踏入Web大门的第一步——Web 的工作方式
  • 原文地址:https://blog.csdn.net/magicyangjay111/article/details/134175694