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

news2024/11/22 21:51:54

了解如何使用 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产品研发负责人。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

免费(daoban)gpt,同时去除广告

一. 内容简介 免费(daoban)gpt,同时去除广告,https://chat18.aichatos.xyz/,也可当gpt用,就是有点广告,大家也可以支持一下 二. 软件环境 2.1 Tampermonkey 三.主要流程 3.1 创建javascript脚本 点击添加新脚本 …

超详细!!!顺序表的实现

顺链表的实现 顺序表的概念及结构概念顺序表与数组的区别顺序表的结构 动态顺序表的实现头文件 "SeqList.h"定义结构体 SL 源文件顺列表的实现初始化顺列表 void SLInit(SL* ps)检查顺列表空间大小 void SLCheckCapacity(SL* ps)尾插数据 void SLPushBack(SL* ps,SLD…

java强转实验

不存在继承关系时,强转会出现编译时异常。即:无法将两个不同类型的对象做转换 当存在继承关系时,强转正常。备注:同名字段,类型一致,可以强转替代getset。同名字段,类型不一致,强转会…

网络安全之XSS漏洞

一. 引言 Cross-Site Scripting(跨站脚本攻击)简称XSS,是一种代码注入攻击。XSS 攻击通常指的是利用网页的漏洞,攻击者通过巧妙的方法注入 XSS 代码到网页,因为浏览器无法分辨哪些脚本是可信的,导致 XSS 脚…

matlab求解时变系统的Riccati矩阵微分方程

对于代数Riccati方程的求解网上能找到很多的资源,matlab也有成熟的函数,但是对于时变系统的Riccati矩阵微分方程,能找到的资料还比较少。 一、求解代数Riccati方程 可以在网上找到很多资料,如 https://blog.csdn.net/m0_622999…

python中有哪些你觉得超级牛的模块?

之前在做数据分析的时候,用过一个自动化生成数据探索报告的Python库:ydata_profiling 一般我们在做数据处理前会进行数据探索,包括看统计分布、可视化图表、数据质量情况等,这个过程会消耗很多时间,可能需要上百行代码…

Linux--线程--互斥锁

1.互斥量 a)互斥量(mutex)从本质上来说是一把锁,一般在主线程中定义一个互斥量,就是定义一把锁。然后根据我们的需求来对线程操作这把锁。 b)如果给所有的线程都加上锁了,线程们会去争取内存空…

2018年第三届 美亚杯电子取证 个人赛题解

1 Victor的笔记本电脑己成功取证并制作成法证映像档 (Forensic Image),下列哪个是其MD5哈希值? (2分) A. FC20782C21751AB76B2A93F3A17922D0 B. 5F1BDEB87EE9F710C90CFB3A0BB01616 C. A0BB016160CFB3A0BB0161661670CFB3 D. 917ED59083C8B35C54D3FCBFE4C4BB0B E. F…

当你在浏览器地址栏输入一个URL后,将会发生的事情?个人笔记

客户端 在浏览器输入 URL 回车之后发生了什么(超详细版) - 知乎 (zhihu.com) 大致流程是: URL 解析DNS 查询TCP 连接处理请求接受响应渲染页面 1.URL解析 地址解析: 首先判断你输入是否是一个合法的URL还是一个待搜索的关键…

上市公司-供应链效率数据集(2000-2022年)

参照张倩肖(2023)、Feng(2015)、张树山(2023)的做法,团队以库存周转天数来衡量供应链效率 库存周转天数有效克服了因企业保留安全库存而导致供应链效率较低的测算误差,体现供应链上…

回归预测 | Matlab实现POA-CNN-SVM鹈鹕算法优化卷积神经网络-支持向量机多变量回归预测

Matlab实现POA-CNN-SVM鹈鹕算法优化卷积神经网络-支持向量机多变量回归预测 目录 Matlab实现POA-CNN-SVM鹈鹕算法优化卷积神经网络-支持向量机多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.POS-CNN-SVM鹈鹕算法优化卷积神经网络-支持向量机的多变量回归…

好用的CRM软件都有哪些功能?

好用的CRM软件不仅仅是将客户资料存档,更大的作用还在于充分发挥数据的价值提升客户管理效率。如果您了解过多款CRM软件就一定会发现它们的功能都不尽相同,但是好用的CRM工具离不开这些功能: 一、客户视图 客户视图主要由4类数据组成&#…

基于springboot实现游戏分享网站系统项目【项目源码+论文说明】

基于springboot实现游戏分享网站演示 摘要 网络的广泛应用给生活带来了十分的便利。所以把游戏分享管理与现在网络相结合,利用java技术建设游戏分享网站,实现游戏分享的信息化。则对于进一步提高游戏分享管理发展,丰富游戏分享管理经验能起到…

跨境商城源码价格

在当今数字商务的时代,跨境电商已经成为了越来越多企业的选择。然而,要建立一个高效、便捷、全球化的跨境商城并不是一件简单的事情。所幸,现在有一个开源的解决方案,给企业提供了无限的可能性。跨境商城源码价格合乎实际&#xf…

浅谈AcrelEMS-CB商业建筑能源管理系统解决方案-安科瑞 蒋静

1概述 AcrelEMS-CB商业建筑能源管理系统,集电力监控、电能质量监测与治理、电气安全预警、能耗分析、照明控制、新能源使用、能源收费以及设备运维等功能于一体,通过一套系统对商业建筑的能源进行统一监控、统一运维和调度,系统可以通过WEB和…

对比学习(contrastive Learning)

起源和定义 自监督学习又可以分为对比学习(contrastive learning)和生成学习(generative learning)两条主要的技术路线。 比学习的核心思想是将正样本和负样本在特征空间对比,从而学习样本的特征表示,使得样本与正样本的特征表示尽可能接近。正样本和负…

webase编译合约一直转圈卡住解决方案

问题:webase编译合约一直转圈卡住,等再久也没反应 解决方案: 进入webase-web目录,然后进入static\js目录,执行以下命令: curl -#L https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/download/solidity/wasm/v0.4.25.js -o v0.4.25.js curl -#L https://os…

Unity AssetBundle打包

1,AssetBundle的概念与作用 AssetBundle是一个存档文件,是Unity提供的一种用于存储资源的资源压缩包,可以包含模型、贴图、音频、预制体等。 Unity中的AssetBundle系统是对资源管理的一种扩展,通过将资源分布在不同的AB包中可以最…

SpringBoot--Web开发篇:含enjoy模板引擎整合,SpringBoot整合springMVC;及上传文件至七牛云;restFul

SpringBoot的Web开发 官网学习: 进入spring官网 --> projects --> SpringBoot --> LEARN --> Reference Doc. --> Web --> 就能看到上述页面 静态资源映射规则 官方文档 总结: 只要是静态资源,放在类路径下&#xff1…

制作网页版H5页面商城源码系统+随心DIY 带前后端完整搭建教程

随着智能手机的广泛普及,人们越来越依赖手机进行日常生活中的各种活动,包括购物。传统的PC端购物模式已经无法满足人们的需求,因此开发移动端的购物系统势在必行。而现如今H5技术不断发展成熟,使得在手机等移动设备上展示网页版商…