《AI 计算系统》精品课程实验指导手册
第 1 页
华为昇腾-昇思 MindSpore《AI 计算系统》精品课程
HCIA-AI计算系统
精品课程
实验指导手册
版本:1.0
华为技术有限公司
《AI 计算系统》精品课程实验指导手册
第 2 页
版权所有 © 华为技术有限公司 2021。 保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并
不得以任何形式传播。
商标声明
和其他华为商标均为华为技术有限公司的商标。
本文档提及的其他所有商标或注册商标,由各自的所有人拥有。
注意
您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部
或部分产品、服务或特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公
司对本文档内容不做任何明示或暗示的声明或保证。
由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅
作为使用指导,本文档中的所有陈述、信息和建议不构成任何明示或暗示的担保。
华为技术有限公司
地址:
深圳市龙岗区坂田华为总部办公楼 邮编:518129
网址:
http://e.huawei.com
《AI 计算系统》精品课程实验指导手册
第 3 页
目录
2 搭建 VGG16 神经网络实现图像分类......................................................................4
2.1 实验介绍................................................................................................................................................4
2.1.1 卷积算子介绍....................................................................................................................................4
2.1.2 最大池化算子介绍...........................................................................................................................5
2.1.3 扁平化算子介绍...............................................................................................................................5
2.1.4 VGG16 神经网络介绍 ......................................................................................................................6
2.1.5 实验目录结构介绍...........................................................................................................................6
2.2 实验环境要求......................................................................................................................................6
2.3 实验详细设计与实现..........................................................................................................................7
2.3.1 实验步骤 ...........................................................................................................................................7
2.4 实验总结 ...........................................................................................................................................22
2.5 实验任务与参考解答任务...............................................................................................................22
2.5.1 实验任务.........................................................................................................................................22
2.5.2 参考答案........................................................................................................................................23
《AI 计算系统》精品课程实验指导手册
第 4 页
2 搭建 VGG16 神经网络实现图像分类
2.1 实验介绍
本实验实现的是用 Python 语言构建 VGG 卷积神经网络。整体流程如下:
搭建卷积算子、最大池化算子等基本算子。
搭建 VGG16 卷积神经网络
定义数据预处理模块。
对单张图片进行正向传播和反向传播,输出正确的类别置信度,并查看中间
梯度信息。
2.1.1 卷积算子介绍
卷积算子是卷积神经网络里最重要的一个算子,通过卷积计算,可以进一步扩
大感受野,获得高纬度高层次的特征。卷积神经网络从广义上看就是一个个卷
积算子堆叠而成。
对于基本的卷积算子,需要定义输入通道数
C
in
,输出通道数
C
out
,卷积核尺寸
𝐾
,边界扩充大小
𝑃
和卷积步长
𝑆
。其中边界扩充大小是控制应用于输入张量的
填充量,可以保证卷积后的输出张量与输入张量的形状保持一致。卷积算子中的
参数包括卷积核的权重
𝑊𝑒𝑖𝑔ℎ𝑡
和偏置
𝐵𝑖𝑎𝑠
,其中权重
𝑊𝑒𝑖𝑔ℎ𝑡
用四阶张量
(
(
C
out
,
C
in
,
K
,
K
)
表示,偏置
𝐵𝑖𝑎𝑠
用一维向量
(
C
out
,)
表示。一般运算流程如下所示:
1.对于输入张量
X
(
N
,
C
in
,
H
in
,
W
𝑖
n
)
,一般会进行边界扩充至
X
pad
(
N
,
C
in
,
H
pad
,
W
pad
)
《AI 计算系统》精品课程实验指导手册
第 5 页
X
𝑝𝑎𝑑
(n,c,h,w)
=
X
(
n
,
c
,
ℎ
−
P
,
w
−
P
)
P
≤
ℎ
<
P
+
H
in
P
≤
w
<
P
+
W
in
0
otℎer
2.进行卷积运算得到输出
Y
(
N
,
C
out
,
H
out
,
W
out
)
:
Y
(
N
,
C
out
)
=
Bias
(
C
out
)
+
∑
C
in
−1
k
=
0
Weigℎt
(
C
out
,
k
)
∗
X
(
N
,
k
)
对于输出高度
H
out
、输出宽度
W
out
可根据以下公式计算得到:
H
out
=
⌊
H
in
+
2
∗
P
−
K
S
+
1⌋
W
out
=
⌊
W
in
+
2
∗
P
−
K
S
+
1⌋
2.1.2 最大池化算子介绍
最大池化是从输入特征图中在每个通道上输出每个窗口的最大值。最大池化通常
使用 2 * 2 的窗口且步幅为 2,其目的是将特征图下采样 2 倍,为了在保留更重要
特征的同时,降低分辨率,减少需要处理的特征图的元素个数。对于输入特征图
X
(
N
,
C
,
H
in
,
W
in
)
,经过最大池化算子(窗口大小
K
, 步长
S
)得到输出
Y(N,C,
H
out
,
W
out
)
,其公式可表述为:
Y
(
N
,
C
,
ℎ
,
w
)
=
max
m
=
0,..
K
−1
max
n
=
0,..
K
−1
X
(
N
,
C
,
ℎ
∗
S
+
m
,
w
∗
S
+
n
)
H
out
=
⌊
H
in
−
K
S
+
1⌋
W
out
=
⌊
W
in
−
K
S
+
1⌋
2.1.3 扁平化算子介绍
扁平化算子用于改变张量的形状,对输入的张量进行展平,即将四维张量转变成
二维向量,常用于卷积层与全连接层之间,其公式如下所示:
X
(
N
,
C
,
H
,
W
)
=
X
(
N
,
C
∗
H
∗
W
)