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

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

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

file

一、环境准备

  • Azure 订阅。 如果没有订阅,注册之后即可试用 Azure 机器学习免费版或付费版。 如果使用的是免费订阅,则仅支持 CPU 群集。

  • 安装 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 个概率的列表,一个概率对应于要分类的一个数字。 下面是数据的外观示例。

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

规格文件将在 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
规格文件将创建名为 `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. 右键单击规范文件,然后选择“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产品研发负责人。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/117120.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

curl(七)上传和下载

一 上传 ① -T | --upload 上传 ​1、向ftp服务器 传一个文件:curl -T localfile -u name:passwd ftp://upload_site:port/path/2、向http服务器上传文件curl -T localfile http://www.wzj.com/wzj.html注意: 这时候使用的协议是HTTP的PUT…

基于STM32设计的室内环境监测系统(华为云IOT)_2023

一、设计需求 基于STM32+华为云物联网平台设计一个室内环境监测系统,以STM32系列单片机为主控器件,采集室内温湿度、空气质量、光照强度等环境参数,将采集的数据结果在本地通过LCD屏幕显示,同时上传到华为云平台并将上传的数据在Android移动端能够实时显示、查看。 【1…

5.数据表基本操作

目录 1.创建数据表 创建数据表的语法格式: 查看当前数据库的表: 主键 1.单字段主键 (1)在定义列的同时指定主键,语法规则如下: (2)在定义完所有列之后指定主键。 2.多字段联合主键 外键: 非空约束&#xff1…

react_11

MobX 介绍 需求,组件0 改变了数据,其它组件也想获得改变后的数据,如图所示 这种多个组件之间要共享状态数据,useState 就不够用了,useContext 也不好用了 能够和 react 配合使用的状态管理库有 MobX Redux 其中…

黑猫带你学NandFlash第3篇:NAND寻址(行列地址和block/page/LUN之间的关系)

本文依据不同型号NandFlash spec及个人工作经验整理而成,如有错误请留言。 文章为付费内容,已加入原创侵权保护,禁止私自转载及抄袭。 文章所在专栏:《黑猫带你学:NandFlash详解》 本文大约2000字,主要讲解:nand flash如何物理寻址、多plane又是如何寻址、相关计算公式等…

Spring Data Redis + RabbitMQ - 基于 string 实现缓存、计数功能(同步数据)

目录 一、Spring Data Redis 1.1、缓存功能 1.1.1、分析 1.1.2、案例实现 1.1.3、效果演示 1.2、计数功能(Redis RabbitMQ) 1.2.1、分析 1.2.2、案例实现 一、Spring Data Redis 1.1、缓存功能 1.1.1、分析 使用 redis 作为缓存, M…

ArmSom---I2C开发指南

1. 简介 RK3588从入门到精通 本⽂介绍在rockchip平台下如何配置i2c接口的方法并且添加调试验证i2c外设的例子 开发板:ArmSoM-W3 Kernel:5.10.160 OS:Debian11 2. i2c接口概述 i2c 总线控制器通过串行数据(SDA)线…

【hcie-cloud】【1】华为云Stack解决方案介绍、华为文档获取方式 【上】

文章目录 华为文档获取方式前言云计算发展背景国家政策、社会发展驱动数字经济开启新时代深化数字化转型提升效率,国家数字主权云进入落地阶段从Cloud-Based到Cloud-Native,两种模式长期并存适合政企智能升级的云华为云Stack,政企智能升级首选…

ks ios快手极速版、概念版、创作版sig sig3

风控: 快手除了正版下,还有极速版,概念版,创作版。 然而看了下概念版还是风控比正版要低的多~ 抓包: 对于快手的ios版本抓包很简单,直接vpn转发抓包方式即可,不可用代理抓包;这个…

[SSD综述 1.4] SSD固态硬盘的架构和功能导论

依公知及经验整理,原创保护,禁止转载。 专栏 《SSD入门到精通系列》 <<<< 返回总目录 <<<< ​ 前言 机械硬盘的存储系统由于内部结构, 其IO访问性能无法进一步提高,CPU与存储器之间的性能差距逐渐扩大。以Nand Flash为存储介质的固态硬盘技术的发展,…

redis rdb aof

appendonly yes # appendfsync always appendfsync everysec # appendfsync no E:\Document_Redis_Windows\redis-2.4.5-win32-win64\64bit appendonly.aof

基于单片机的养殖场温度控制系统设计

博主主页&#xff1a;单片机辅导设计 博主简介&#xff1a;专注单片机技术领域和毕业设计项目。 主要内容&#xff1a;毕业设计、简历模板、学习资料、技术咨询。 文章目录 主要介绍一、控制系统设计二、系统方案设计2.1 系统运行方案设计2.1.1 羊舍环境温度的确定 三、 系统仿…

ElasticSearch高级功能详解与原理剖析

ES数据预处理 Ingest Node Elasticsearch 5.0后&#xff0c;引入的一种新的节点类型。默认配置下&#xff0c;每个节点都是Ingest Node&#xff1a; 具有预处理数据的能力&#xff0c;可拦截lndex或Bulk API的请求对数据进行转换&#xff0c;并重新返回给Index或Bulk APl 无…

项目实战:优化Servlet,把所有围绕Fruit操作的Servlet封装成一个Servlet

1、FruitServlet 这些Servlet都是围绕着Fruit进行的把所有对水果增删改查的Servlet放到一个Servlet里面&#xff0c;让tomcat实例化一个Servlet对象 package com.csdn.fruit.servlet; import com.csdn.fruit.dto.PageInfo; import com.csdn.fruit.dto.PageQueryParam; import c…

(景行锐创) 高性能计算平台 Pytorch 深度学习环境超详细教程

文章目录 前言1. 账号申请2. 登录高算平台网站3. 安装 Xshell&#xff0c;Xftp 软件4. 连接高算平台5. 安装 Anaconda6. 安装 CUDA7. 配置 cuDNN8. 安装 torch 和 torchvision9. 提交作业测试10. 解压与压缩文件11. 其他结语 前言 目前一些学校为了便于师生进行大规模的计算任…

vue工程化开发和脚手架

工程化开发和脚手架 1.开发Vue的两种方式 核心包传统开发模式&#xff1a;基于html / css / js 文件&#xff0c;直接引入核心包&#xff0c;开发 Vue。工程化开发模式&#xff1a;基于构建工具&#xff08;例如&#xff1a;webpack&#xff09;的环境中开发Vue。 工程化开…

使用免费 FlaskAPI 部署 YOLOv8

目标检测和实例分割是计算机视觉中关键的任务&#xff0c;使计算机能够在图像和视频中识别和定位物体。YOLOv8是一种先进的、实时的目标检测系统&#xff0c;因其速度和准确性而备受欢迎。 Flask是一个轻量级的Python Web框架&#xff0c;简化了Web应用程序的开发。通过结合Fla…

如何使用Selenium处理Cookie,今天彻底学会了

01 cookie介绍 HTTP协议是无状态的协议。一旦数据交换完毕&#xff0c;客户端与服务器端的连接就会关闭&#xff0c;再次交换数据需要建立新的连接&#xff0c;这就意味着服务器无法从连接上跟踪会话。也就是说即使第一次和服务器连接后并且登录成功后&#xff0c;第二次请求…

【vue2高德地图api】04-poi搜索

系列文章目录 文章目录 系列文章目录前言一、高德地图文档入口二、使用步骤1.创建文件以及路由2.编写页面代码3.样式4变量以及方法5.编写查询方法 总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 本篇要实现的功能&#xff0c;看下图 提示&#x…

PivotNet:Vectorized Pivot Learning for End-to-end HD Map Construction

参考代码&#xff1a;BeMapNet。PS&#xff1a;代码暂未放出&#xff0c;关注该仓库动态 动机和主要贡献 在MapTR系列的算法中将单个车道线建模为固定数量的有序点集&#xff08;对应下图Evenly-based&#xff09;&#xff0c;这样的方式对于普通道路场景具备一定适应性。但是…