Azure 机器学习 - 使用 Visual Studio Code训练图像分类 TensorFlow 模型
了解如何使用 TensorFlow 和 Azure 机器学习 Visual Studio Code 扩展训练图像分类模型来识别手写数字。
关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。

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

三、创建工作区
若要在 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.jsonname: TeamWorkspacelocation: WestUS2display_name: team-ml-workspacedescription: A workspace for training machine learning modelstags:purpose: trainingteam: ml-team
规格文件将在 WestUS2 区域中创建名为 TeamWorkspace 的工作区。 规格文件中定义的其余选项为工作区提供友好的命名、说明和标记。
-
右键单击规范文件,然后选择“AzureML: 执行 YAML”。 创建资源时将使用 YAML 规范文件中定义的配置选项,并使用 CLI (v2) 提交一个作业。 此时,系统会向 Azure 发出请求,以便在你的帐户中创建新的工作区和相关资源。 几分钟后,新工作区会显示在订阅节点中。
-
将
TeamWorkspace设置为默认工作区。 这样会默认将你创建的资源和作业放入该工作区。 在 Visual Studio Code 状态栏上选择“设置 Azure 机器学习工作区”按钮,然后按照提示将TeamWorkspace设置为默认工作区。
有关工作区的详细信息,请参阅如何在 VS Code 中管理资源。
四、创建用于训练的 GPU 群集
计算目标是在其中运行训练作业的计算资源或环境。 有关详细信息,请参阅 Azure 机器学习计算目标文档。
-
在“Azure 机器学习”视图中,展开你的工作区节点。
-
右键单击工作区的“计算”节点内的“计算群集”节点,然后选择“创建计算”

- 此时会显示规范文件。 用以下选项配置规范文件。
$schema: https://azuremlschemas.azureedge.net/latest/compute.schema.jsonname: gpu-clustertype: amlcomputesize: Standard_NC12min_instances: 0max_instances: 3idle_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)。
- 右键单击规范文件,然后选择“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 机器学习特选环境。
若要提交训练作业,请执行以下操作:
- 打开“job.yml”文件。
- 在文本编辑器中右键单击该文件,然后选择“AzureML: 执行 YAML”。
此时系统会向 Azure 发送请求,以便在工作区中所选的计算目标上运行试验。 此过程需要几分钟。 运行训练作业的时间长度受多种因素(如计算类型和训练数据大小)的影响。 若要跟踪试验进度,请右键单击当前的运行节点,然后选择“在 Azure 门户中查看作业”。
出现请求打开外部网站的对话框时,请选择“打开”。

训练完模型后,运行节点旁边的状态标签会更新为“已完成”。
关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。
相关文章:
Azure 机器学习 - 使用 Visual Studio Code训练图像分类 TensorFlow 模型
了解如何使用 TensorFlow 和 Azure 机器学习 Visual Studio Code 扩展训练图像分类模型来识别手写数字。 关注TechLead,分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员…...
Vue 创建自定义 ref 函数
Vue 创建自定义 ref 函数 customRef customRef 用于:创建一个自定义的 ref 函数,并对其依赖项跟踪和更新触发进行显式控制。 使用 customRef 创建自定义 ref 函数 // 创建自定义 ref 函数 function myRef(value) {return customRef((track, trigger) &…...
[2016-2018]phpstudy的exp制作
[2016-2018]phpstudy的exp制作 用python的requests模块进行编写 修改请求数据包进行远程代码执行 import requests import base64 def remove_code_execute():try:url input("请输入要测试的网址:")cmd input("想要执行的命令:")cmd f"system({…...
服务器数据恢复—Zfs文件系统下文件被误删除的如何恢复数据?
服务器故障: 一台zfs文件系统服务器,管理员误操作删除服务器上的数据。 服务器数据恢复过程: 1、将故障服务器所有磁盘编号后取出,硬件工程师检测所有硬盘后没有发现有磁盘存在硬件故障。以只读方式将全部磁盘做扇区级别的镜像备…...
关于嵌入式rtthread系统与单片机芯片
简介 我估计已经有很久没更新了,近一年都在某个国企里工作,我做的就是嵌入式工程师的岗位,最近才刚刚退出来,想来说说自己的工作使用的软件和系统。 本身进公司的时候,其实做的就是写单片机的板子的程序的工作&#x…...
在Ubuntu上安装Redis并学习使用get、set和keys命令
目录 安装Redis切换到root用户搜索redis相关软件包安装redis修改配置文件重启服务器使用redis客户端连接服务器 get与set命令keys 安装Redis 我们在Ubuntu20.04上进行Redis的安装 切换到root用户 使用su命令: 在终端中,输入su并按回车键。然后输入roo…...
Ubuntu更换镜像源
Ubuntu更换镜像源 镜像源设置文件镜像源设置focal版本镜像源设置bionic版本镜像源设置 更新源问题 镜像源设置文件 备份镜像源设置文件 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak编辑镜像源设置文件 sudo gedit /etc/apt/sources.list镜像源设置 Ubuntu有不…...
Sulfo-CY5 NHS荧光染料的生物应用2230212-27-6星戈瑞
Sulfo-CY5 NHS ester是一种用于生物学和生物医学研究中的荧光染料,它在生物应用方面具有许多重要用途,包括但不限于以下几个方面: **生物标记:**Sulfo-CY5 NHS ester可以与生物分子(如抗体、蛋白质、核酸等)…...
Python Django 之模板继承详解(extends)
文章目录 1 概述1.1 目的1.2 标签:block、extends1.3 目录结构 2 templates 目录2.1 base.html:父页面2.2 login.html:子页面 3 其它代码3.1 settings.py3.2 views.py3.3 urls.py 1 概述 1.1 目的 模板继承 和 类继承 的目的是一样的&#…...
混合式ANC主动降噪耳机系统设计(含C源代码)
混合式ANC主动降噪耳机系统设计(含C源代码) 是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务,+群赠送语音信号处理降噪算法,蓝牙音频,DSP音频项目核心开发资料, 1 FF信号链路与FB 链路算法处理上一样 X(n)为噪声输…...
Linux查看磁盘、内存、cpu信息
1. 查看磁盘空间信息:lsblk 2. 查看内存信息:awk $3"kB"{$2$2/1024^2;$3"GB";} 1 /proc/meminfo | column -t 3. 查看cup相关信息:lscup...
C语言 强制类型转换的各种代码示例
在C语言中,强制类型转换可以通过使用类型转换运算符来完成。以下是一些关于C语言强制类型转换的代码示例: int num 10; float fnum (float) num; // 将整数num转换为浮点数float fnum 3.14; int num (int) fnum; // 将浮点数fnum转换为整数&a…...
python 二维码使用
python 二维码使用 segno官网...
uniapp的启动页、开屏广告
uniapp的启动页、开屏广告 启动页配置广告开屏 启动页配置 在manifest.json文件中找到APP启动界面配置,可以看到有Android和iOS的启动页面的配置 ,选择自定义启动图即可配置 广告开屏 在pages中新建一个广告开屏文件并在pases.json的最顶部配置这个页…...
基于人工势场法的航线规划
GitHub - zzuwz/Artificial-Potential-Field: 2D平面下的人工势场法 GitHub - mellody11/Artificial-Potential-Field: 机器人导航--人工势场法及其改进 matlab2020a可以运行...
在紫光同创盘古50K开发板上进行DDR读写测试
本原创文章由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处 适用于板卡型号: 紫光同创PGL50H开发平台(盘古50K开发板) 一:软硬件平台 软件平台:PDS_…...
MySQL BinLog实战应用之二
一、前言 上篇 MySQL Binlog实战应用之一 主要讲了BinLog的开启以及用MySQLBinLog读取BigLog二进制文件,但MySQLBinLog很难直接对接Java,所以有了Canal这个Alibaba开发的用于MySQL增量日志解析,提供增量数据的订阅和消费组件。 二、Canal原…...
Visual Studio Code 快 捷 键
个人总结 Visual Studio Code 快 捷 键!满足日常使用,提高工作效率!! 1、搜索文件: Ctrl p 2、移到某一行: Ctrl g 一、切 换 行 注 释、切 换 块 注 释 1、行注释"//"快捷键…...
有色金属冶炼VR虚拟场景互动教学有何优势
真实模拟:VR虚拟现实技术可以提供一个真实的虚拟环境,模拟钢铁制造现场,包括设备、工艺流程、操作规程等,使学员获得直观、真实的体验。 安全可靠:钢铁制造技能培训可以在虚拟环境中进行,不会对人员或设备造…...
Python将知网导出的endnote题录转为Refworks模式
近期使用SATI文献分析系统,发现效果有限,vosviewer虽然聚类起来图片好看,但没有模块度以及轮廓值等评价标准,因此只能去找citespace,3000文献经过了筛选,重新在知网导一次太麻烦了,还是直接用py…...
SpringBoot 2.6.2 + MyBatis-Plus 3.5.2 集成人大金仓Kingbase 8.6.0保姆级教程(含本地JAR安装避坑)
SpringBoot 2.6.2 MyBatis-Plus 3.5.2 集成人大金仓Kingbase 8.6.0实战指南 在国产化技术浪潮下,越来越多的企业开始采用国产数据库解决方案。作为国内领先的关系型数据库产品,人大金仓Kingbase以其高兼容性和稳定性受到广泛关注。本文将手把手带你完成…...
蓝桥杯嵌入式LCD显示避坑指南:sprintf函数格式化变量显示的正确姿势
蓝桥杯嵌入式LCD显示避坑指南:sprintf函数格式化变量显示的正确姿势 在蓝桥杯嵌入式竞赛中,LCD显示是基础但至关重要的环节。许多参赛选手在实现变量动态显示时,常常因为对sprintf函数的使用不当而陷入各种"坑"中——数据显示不全、…...
UnityPackage Extractor终极指南:快速免费提取Unity资源包
UnityPackage Extractor终极指南:快速免费提取Unity资源包 【免费下载链接】unitypackage_extractor Extract a .unitypackage, with or without Python 项目地址: https://gitcode.com/gh_mirrors/un/unitypackage_extractor UnityPackage Extractor是一款简…...
CANN/asc-devkit __hgtux2函数
__hgtux2 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://gitcode.com/c…...
3步打造高效macOS菜单栏:Hidden Bar深度使用指南
3步打造高效macOS菜单栏:Hidden Bar深度使用指南 【免费下载链接】hidden An ultra-light MacOS utility that helps hide menu bar icons 项目地址: https://gitcode.com/gh_mirrors/hi/hidden 作为macOS用户,你是否曾为菜单栏图标拥挤不堪而烦恼…...
【从零学Vibe Coding】前言:为什么要写这份教程
前言:为什么要写这份教程 一切从一个画面开始 2025 年,你大概率刷到过这样的画面: 有人对着 AI 说一句"帮我做个记账 App"十几分钟后,页面已经能点、能跳、能保存数据评论区一半人在惊呼"程序员要失业了"另…...
类型转换:隐式、显式与类型提升
在Java开发中,数据类型转换是最基础也最容易被忽略的核心操作——从简单的变量赋值、数字运算,到复杂的方法传参、泛型适配、多态转型、序列化,几乎每一行代码都隐含着类型转换的逻辑。很多同学只停留在“会用”的层面:知道int转l…...
全球仅12家顶级艺术机构内部流通的Perplexity知识图谱映射表(含RIS/JSON-LD双格式导出密钥)
更多请点击: https://intelliparadigm.com 第一章:Perplexity艺术知识搜索的范式革命 传统搜索引擎依赖关键词匹配与页面权重排序,在艺术史、当代策展理论、跨媒介创作方法论等高度语境化、隐喻密集的知识领域中,常陷入“查得到却…...
从Wi-Fi 6到5G:深入浅出聊聊MIMO中的CSI反馈那些事儿(PMI/RI/CQI详解)
从Wi-Fi 6到5G:深入浅出聊聊MIMO中的CSI反馈那些事儿(PMI/RI/CQI详解) 现代无线通信系统正经历着从Wi-Fi 6到5G的跨越式发展,而多天线技术(MIMO)作为提升频谱效率的核心手段,其性能很大程度上依赖于准确的信道状态信息…...
给企业主机穿上安全防护“黄金甲”,打造金城汤池
主机安全主要的风险来源——漏洞众所周知,软件是构成数字世界的基础,但是软件都是人为编写的,与一切皆可编程相对应的是,一切软件都存在漏洞。平均每千行代码就有4-6个安全缺陷,漏洞是网络安全的命门。但是,…...
