基于MindSpore的图像识别全 流程代码实战 版本:2.0 se HUAWEI 华为技术有限公司
基于 MindSpore 的图像识别全 流程代码实战 版本:2.0 华为技术有限公司
% 第1页 HUAWEI 目录 1实验介绍 …2 1.1实验清单 .2 1.2开发平台介绍 .2 1.3背景知识 2 2基于MindSpore的图像识别全流程代码实战 7 2.1实验介绍 .7 2.2实验环境要求 .7 2.3实验总体设计 ..13 2.4实验过程 ..14 2.4.1数据集获取… .14 2.4.2导入实验环境 ..14 2.4.3读取数据集… ..16 2.4.4模型构建训练 18 2.4.5模型预测… …26 2.4.6模型保存和转换 27 2.4.7模型部署上线 31 2.5实验总结… .37
第1页 目录 1 实验介绍 ............................................................................................................................... 2 1.1 实验清单 ..................................................................................................................................................................... 2 1.2 开发平台介绍 ............................................................................................................................................................. 2 1.3 背景知识 ..................................................................................................................................................................... 2 2 基于 MindSpore 的图像识别全流程代码实战 ........................................................................ 7 2.1 实验介绍 ..................................................................................................................................................................... 7 2.2 实验环境要求 ............................................................................................................................................................. 7 2.3 实验总体设计 ........................................................................................................................................................... 13 2.4 实验过程 ................................................................................................................................................................... 14 2.4.1 数据集获取 ............................................................................................................................................................ 14 2.4.2 导入实验环境 ........................................................................................................................................................ 14 2.4.3 读取数据集 ............................................................................................................................................................ 16 2.4.4 模型构建训练 ........................................................................................................................................................ 18 2.4.5 模型预测 ................................................................................................................................................................ 26 2.4.6 模型保存和转换 .................................................................................................................................................... 27 2.4.7 模型部署上线 ........................................................................................................................................................ 31 2.5 实验总结 ................................................................................................................................................................... 37
% HUAWEI 第2页 实验介绍 卷积网络,也叫做卷积神经网络,是专门用来处理具有类似网格结构的数据的神经网络。例吸如 时间序列数据(可以认为是在时间轴上有规律的采样形成的一维网格)和图像数据(可以看作 二维的像素网格)。卷积在诸多应用领域都表现优异。本章主要围绕深度学习的卷积网络而开 设的实验。 本章实验的主要目的是掌握卷及网络相关基础知识点。掌握不同神经网络架构的设计原理,熟 悉使用MindSpore框架实验的一般流程,以及最后将模型部署上线。 1.1实验清单 表格:实验、简述、难度、软件环境、硬件环境。 实验 简述 软件环境 开发环境 训练并部署上线花卉图像 ModelArts 图像识别全流程代码 分类卷积网络分类识别实 MindSpore-1.1.1- 实战 python3.7 验。 1.2开发平台介绍 ●MindSpore最佳匹配异腾芯片的开源A计算框架,支持Asend、GPU、CPU平台。MindSpore官 网:https:/www.mindspore.cn ● ModelArts是面向开发者的一站式AI开发平台,为机器学习与深度学习提供海量数据预处理及半 自动化标注、大规模分布式Training、自动化模型生成,及端-边-云模型按需部曙能力,帮助用 户快速创建和部署模型,管理全周期A!工作流。 1.3背景知识 卷积神经网络结构
第2页 1 实验介绍 卷积网络,也叫做卷积神经网络,是专门用来处理具有类似网格结构的数据的神经网络。例如 时间序列数据(可以认为是在时间轴上有规律的采样形成的一维网格)和图像数据(可以看作 二维的像素网格)。卷积在诸多应用领域都表现优异。本章主要围绕深度学习的卷积网络而开 设的实验。 本章实验的主要目的是掌握卷及网络相关基础知识点。掌握不同神经网络架构的设计原理,熟 悉使用 MindSpore 框架实验的一般流程,以及最后将模型部署上线。 1.1 实验清单 表格:实验、简述、难度、软件环境、硬件环境。 实验 简述 软件环境 开发环境 图像识别全流程代码 实战 训练并部署上线花卉图像 分类卷积网络分类识别实 验。 MindSpore-1.1.1- python3.7 ModelArts 1.2 开发平台介绍 MindSpore 最佳匹配昇腾芯片的开源 AI 计算框架,支持 Asend、GPU、CPU 平台。MindSpore 官 网:https://www.mindspore.cn ModelArts 是面向开发者的一站式 AI 开发平台,为机器学习与深度学习提供海量数据预处理及半 自动化标注、大规模分布式 Training、自动化模型生成,及端-边-云模型按需部署能力,帮助用 户快速创建和部署模型,管理全周期 AI 工作流。 1.3 背景知识 卷积神经网络结构
% HUAWEI 第3页 卷积神经网络是深度学习与神经网络算法中主流算法之一,主要用于图像识别。其结构图如 下: Input Image 3 Feature 3 Feature 5 Feature 5 Feature Maps Maps Maps Maps Output Layer Convolution Pooling Convolution Pooling Fully Connected Layer Layer Layer Layer Network 图1-1卷积神经网络结构 ● 卷积层 在卷积层计算过程中,输入是一定区域大小width*height)的数据,和滤波器filter(带着一组 固定权重的神经元)做内积后等到新的二维数据。 具体来说,滤波器fter(带着一组固定权重的神经元)通过滑动窗口的方式,对输入图像进 行扫描,扫描过程中,对输入图像中的像素值进行点乘,不同的滤波器ftr会得到不同的输 出数据,比如颜色深浅、轮廓。相当于如果想提取图像的不同特征,则用不同的滤波器 filter,提取想要的关于图像的特定信息:颜色深浅或轮廓
第3页 卷积神经网络是深度学习与神经网络算法中主流算法之一,主要用于图像识别。其结构图如 下: 卷积神经网络结构 卷积层 在卷积层计算过程中,输入是一定区域大小(width*height)的数据,和滤波器 filter(带着一组 固定权重的神经元)做内积后等到新的二维数据。 具体来说,滤波器 filter(带着一组固定权重的神经元)通过滑动窗口的方式,对输入图像进 行扫描,扫描过程中,对输入图像中的像素值进行点乘,不同的滤波器 filter 会得到不同的输 出数据,比如颜色深浅、轮廓。相当于如果想提取图像的不同特征,则用不同的滤波器 filter,提取想要的关于图像的特定信息:颜色深浅或轮廓
% HUAWEI 第4页 Input Volume (+pad 1)(7x7x3)Filter wo (3x3x3) Filter W1 (3x3x3)Output Volume (3x3x2) x【:,:,0] 0[:,:,0】 w1I:,:,0] el::,0] 0 1 -1-10 10-3 -110 611 -1-10 -110 4-31 00 w0[:,:,1的 1[:,:,1] o[:,:,1] 0 10 -10-1 1-10 -16-4 002 0 00 -1 -10-1 -2-3-4 0 0000 0 1-10 -100 -1-3-3 w0【:,,2] x[:,:,1 w1[:,:,2 00 0 0 -101 0 0 1 01 101 0 1 0-10 0 Bias bo(1x1x1) Bias b1 (1x1x1) 9 b0:,01 b1I:,:,0] 0 0 0 x[:, :2 toggle movement 0 0 0 00 0 112 0 0000000 激活函数: fy)↑ f(y)=y fy)=0 ifx>0 ReLU(x) ifx≤0 LU函数其实是分段线性函数,把所有的负值都变为0,而正值不变,这种操作被成为单侧 抑制。可别小看这个简单的操作,正因为有了这单侧抑制,才使得神经网络中的神经元也具有 了稀疏激活性
第4页 激活函数: ReLU 函数其实是分段线性函数,把所有的负值都变为 0,而正值不变,这种操作被成为单侧 抑制。可别小看这个简单的操作,正因为有了这单侧抑制,才使得神经网络中的神经元也具有 了稀疏激活性
% HUAWEI 第页 此外,相比于其它激活函数来说,ReLU有以下优势:对于线性函数而言,ReLU的表达能力更 强,尤其体现在深度网络中;而对于sigmoid等激活涵数而言,ReLU由于非负区间的导数为 1,因此可以缓解梯度消失问题Vanishing Gradient Problem),使得模型的收敛速度维持在一个 稳定状态。这里稍微描述一下什么是梯度消失问题:当梯度小于1时,预测值与真实值之间的 误差每传播一层会衰减一次,如果在深层模型中使用sigmoid作为激活函数,这种现象尤为明 显,将导致模型收敛停滞不前。 池化层 Single depth slice 1 1 2 4 max pool with 2x2 filters 5 6 7 8 and stride 2 6 8 物 3 2 1 0 3 4 1 2 3 4 y 上图所展示的是区域最大,即上图左边部分中左上角2x2的矩阵中6最大,右上角2x2的矩 阵中8最大,左下角2x2的矩阵中3最大,右下角2x2的矩阵中4最大,所以得到上图右边部 分的结果:6834。 全连接层:
第5页 此外,相比于其它激活函数来说,ReLU 有以下优势:对于线性函数而言,ReLU 的表达能力更 强,尤其体现在深度网络中;而对于 sigmoid 等激活函数而言,ReLU 由于非负区间的导数为 1,因此可以缓解梯度消失问题(Vanishing Gradient Problem),使得模型的收敛速度维持在一个 稳定状态。这里稍微描述一下什么是梯度消失问题:当梯度小于 1 时,预测值与真实值之间的 误差每传播一层会衰减一次,如果在深层模型中使用 sigmoid 作为激活函数,这种现象尤为明 显,将导致模型收敛停滞不前。 池化层: 上图所展示的是区域最大,即上图左边部分中 左上角 2x2 的矩阵中 6 最大,右上角 2x2 的矩 阵中 8 最大,左下角 2x2 的矩阵中 3 最大,右下角 2x2 的矩阵中 4 最大,所以得到上图右边部 分的结果:6 8 3 4。 全连接层:
% HUAWEI 第6页 Probability: Softmax layer as the output layer ■1>y>0 ■∑iy=1 Softmax Layer 20 0.88 ÷ y=e e27 0.12 +2=e 0.05 0 =e softmax直白来说就是将原来输出是3,1,-3通过softmax函数一作用,就映射成为(0,1)的 值,而这些值的累和为1(满足概率的性质),那么我们就可以将它理解成概率。在训练网络 时可以通过对预测值和标签值计算交叉熵损失
第6页 softmax 直白来说就是将原来输出是 3,1,-3 通过 softmax 函数一作用,就映射成为(0,1)的 值, 而这些值的累和为 1(满足概率的性质),那么我们就可以将它理解成概率。在训练网络 时可以通过对预测值和标签值计算交叉熵损失
% HUAWEI 第7页 2 基于MindSpore的图像识别全流程代码实战 2.1实验介绍 图像分类在我们的日常生活中广泛使用,比如拍照识物,还有手机的1拍照,在学术界,每 年也有很多图像分类的比赛,本实验将会利用一个开源数据集来帮助大家学习如何构建自己的 图像识别模型。本实验会使用MindSpore来构建图像识别模型,然后将模型部署ModelArts上 提供在线预测服务。 2.2实验环境要求 ●ModelArts平台:MindSpore-1.1.1 2.2.1实验环境创建 ·登绿华为云网站 https://www.huaweicloud.com/?ticket=ST-4217587-ZMyac1H4moJOpjSOHq4ubtbh-sso&locale=zh- cn ● 在搜索框输入ModelArts,进入ModelArts的控制台: 坐华为云 Q 中配站文档 关于华为云“ 最新活动产品·解决方案· E企业智能~定价云市场、 合作秋伴、 开发者。支持与服务 全部5868) 产品与解决方案55) 0助中心(1273) 云市场同 开发者(4089) 云学¥碳(17万 AI开发平台ModelArts ModelArts足面向开发者的一站式A开发平台,为肌器学习与深度学习提供海量数据预处理及半自动化标注大规分布式Training.自动化楼型生成,及 伴-边云横型按需部署能力,帮助用户快速创健和曙横型,管理全周啊工作流 按需包固明附贵可选,最¥0.00小时 进入控制 AN开发者社区 相关推荐:PyCharm Tool.. As0n9107 A1Gery智能标注供误码 点击开发环境,进入到Notebook页面,点击创建,创建实验所需的环境:
第7页 2 基于 MindSpore 的图像识别全流程代码实战 2.1 实验介绍 图像分类在我们的日常生活中广泛使用,比如拍照识物,还有手机的 AI 拍照,在学术界,每 年也有很多图像分类的比赛,本实验将会利用一个开源数据集来帮助大家学习如何构建自己的 图像识别模型。本实验会使用 MindSpore 来构建图像识别模型,然后将模型部署 ModelArts 上 提供在线预测服务。 2.2 实验环境要求 ModelArts 平台:MindSpore-1.1.1 2.2.1 实验环境创建 登录华为云网站 https://www.huaweicloud.com/?ticket=ST-4217587-ZMyac1H4moJ0pjSOHq4ubtbh-sso&locale=zhcn 在搜索框输入 ModelArts,进入 ModelArts 的控制台: 点击开发环境,进入到 Notebook 页面,点击创建,创建实验所需的环境:
% HUAWEI 第8页 Notebook HuT袖EOO》坐神5 项目自动停止时间设置为2小时,实验环境选择第4个,Ascend-Powered-Engine1.0 (Python3) MindSpore-1.1.1 @ O 0开8后,南abe0l实青房在选行时长超出悬的时长=,同海止上 动停止B时线O1小9 4小时m6小时后叉 工 黄进 Mui-Engne10 Pythond.Recomerded) MNet121.Pyspark-232 Pytorch-1.0.0 TesorFlow-1131.TemsoeFlow XBoost Skiear Muk-Engine 10 (ythen2) Caffe-100 MNel-121Pyk-32PyTorh00 TemmrFlew-1131,TemarF-18.XGdoo-Skeam Mul-Engine 20 (Python3) pyto今14a款61,1enge6w210 Ascd-owr#d-Eigine I0t的on助 Mindspore-1.1.1, orFlow-3.150 选择OBS对象存储服务,在存储位置处点击选择: Aiand-vid-Ee Miicov-180.fow-1.i3 卡直溶别 杂北你家 tt%时i加aM括a6 m额¥1950以g0 ● 如果没有创建桶,点击新建对像存储服务(OBS)桶,新建一个OBS桶;如果已有桶,可 以选择已创建的桶:
第8页 项目自动停止时间设置为 2 小时,实验环境选择第 4 个,Ascend-Powered-Engine 1.0 (Python3) MindSpore-1.1.1 选择 OBS 对象存储服务,在存储位置处点击选择: 如果没有创建桶,点击新建对象存储服务(OBS)桶,新建一个 OBS 桶;如果已有桶,可 以选择已创建的桶:
% HUAWEI 第9页 + 存储位置 请应程文件夹 日obs 曾新建对象存馆服务(OBS)桶>之 请油入名称查向 名称 最后格改时间三 类型目 大小目 目aicode 目qyal-code 目sdsdbgh 使示对象行陆肠务(©B5)阳关操作要要取费,具体汗情直看对象存砖服务(○BS).收费策的 定取消 ● 创建一个新桶:区域选择华北北京四,桶名称需设置为全局唯一,桶默认私有,点击立 即创建 《桶 内风 nA2 2用 适用于有人影执四年家文件,压意要玻紫网平均一香河为件以进直前的务添国 桶创建成功后,在创建项目的页面,点击选择,就可以看到新建的桶,选择该桶:
第9页 创建一个新桶:区域选择华北-北京四,桶名称需设置为全局唯一,桶默认私有,点击立 即创建 桶创建成功后,在创建项目的页面,点击选择,就可以看到新建的桶,选择该桶: