基于tensorflow的深度卷积神经网络卷积运算的模块化编程教学设计
卢洪斌1 刘寒刚2
生成PDF 清样下载 引用

复制成功

导出题录

参考文献( GB/T 7714-2015 ) 复制

卢洪斌1 刘寒刚2,. 基于tensorflow的深度卷积神经网络卷积运算的模块化编程教学设计[J]. 神经科学研究,2021.4. DOI:10.12721/ccn.2021.157377.
摘要:
深度卷积神经网络是图像分类和图像识别领域取得重大突破的核心所在,本文基于tensorflow平台对深度卷积神经网络模型编程的方法进行了模块划分和模块组合的教学设计,通过把复杂的深度卷积神经网络中的卷积运算划分为不同功能模块的组合,使初学者对深度卷积神经网络的卷积运算提取图像特征的过程和具体代码实现更易于理解和掌握,可有效地提高教学效果。
关键词: 深度卷积神经网络;教学设计;tensorflow;卷积运算
DOI:10.12721/ccn.2021.157377
基金资助:

一、引言

深度卷积神经网络是图像分类和图像识别领域最有效的机器学习技术,许多不同专业领域的学生迫切希望掌握此技术,以便将图像识别和分类方法用于本专业的具体应用中,但由于大部分学生不具备人工智能及计算机相关专业的背景,缺乏必要的专业基础及编程经验,故理解和掌握深度卷积神经网络的编程实现比较困难[1]-[3],故本文对深度卷积神经网络卷积运算提取图像特征的程序结构进行了模块化的教学设计,把深度卷积神经网络中不同的功能模块分别用不同的代码段来实现,根据卷积运算提取特征的不同网络结构把不同模块的组合在一起,实现完整的深度卷积神经网络卷积运算特征提取编程应用。

通过功能模块划分和模块组合这一教学设计目的是让初学者对深度卷积神经网络模型结构和具体代码实现易于理解和掌握[4]。本文基于tensorflow平台,tensorflow是google研发的人工智能学习平台,TensorFlow可用于语音处理及机器翻译、图像分类、目标识别和图像理解等广泛的机器学习和深度学习领域[5]。在掌握本文所述的深度卷积神经网络卷积运算各功能模块的基础上,通过不同的功能模块组合实现基于深度卷积神经网络模型的灵活编程应用[6]

二、深度卷积神经网络基本功能模块的划分

深度卷积神经网络的卷积运算特征提取功能可分为以下五个基本功能模块。

1.卷积模块:通过设定不同尺寸的卷积核和滑动步长,使卷积核与输入图像进行卷积运算,从而提取图像不同视野范围的特征。Tensorflow是利用tf.keras.layers.Conv2D函数来构建卷积模块。

2.批标准化模块:将神经网络每层的输入都调整到均值为0,方差为1的标准正态分布,以解决神经网络中梯度消失的问题,批标准化的另一个作用是对输入数据的分布进行缩放和偏移。批标准化模块位于卷积运算模块之后,激活运算模块之前,在Tensorflow中使用tf.keras.layers.BatchNormalization函数来构建批标准化模块。

3. 激活层模块:通过激活函数改变输入数据的非线性度和分布范围,根据不同的应用和神经网络层不同的层面采用的激活函数有所不同,可供采用的激活函数主要有:sigmoid,tanh,Relu,softmax等。在Tensorflow中使用Activation()函数构建激活层模块。

4. 池化层模块:池化的作用是通过降维减少特征数量,最大值池化可提取图片纹理,均值池化可保留背景特征。在Tensorflow中利用通过tf.keras.layers.MaxPool2D函数和tf.keras.layers.AveragePooling2D函数分别构建最大和均值池化层模块。

5. 丢弃神经元模块:丢弃神经元是在神经网络的训练过程中,将一部分神经元按照一定概率从神经网络中暂时舍弃,使用时被舍弃的神经元恢复链接。利用tf.keras.layers.Dropout函数构建丢弃神经元模块。

三、深度卷积神经网络模型编程中模块的组合应用

典型的深度卷积神经网络模型有LeNet、AlexNet、VGGNet、InceptionNet及ResNet,这五种网络作为深度卷积神经网络模型的经典代表,是图像识别和分类应用学习所必须掌握的。它们具备多层的网络结构,其中核心的部分是特征提取部分,可由本文分解的五个基本模块灵活组合构成。五个基本的功能模块的完整卷积运算组合关系如图1所示。

截图1741230294.png

图1. 五个基本的功能模块的完整卷积运算组合关系

比如在Tensorflow平台利用Keras来搭建AlexNet模型,它由五次卷积运算和三层全连接组成。第1次和第2次卷积运算用到了卷积模块、批标准化模块、激活层模块、池化层模块;第3、4次卷积运算只用到了卷积模块和激活层模块;第5次卷积运算用到了卷积模块、激活层模块、池化层模块。

VGGNet网络的网络深度有16层和19层,更深的网络意味着更强的表达能力, VGGNet仅使用3 * 3卷积核,VGGNet的16层网络由13次卷积和3层全连接构成。第1次、第3次、第5次、第6次、第8次、第9次、第11次和第12次卷积运算用到了卷积模块、批标准化模块、激活层模块;第2次、第4次、第7次、第10次、第13次卷积运算用到了图1的完整卷积卷积运算模块;第5次卷积运算用到了卷积模块、激活层模块、池化层模块。

从上述两个典型卷积神经网络模型的卷积运算特征提取过程可以看到,在掌握各卷积运算基本模块编程的基础上,不同的模型只需选取五个基本模块进行组合就可以实现输入图像数据的特征提取,从而实现不同应用场景下的深度卷积神经网络模型的编程应用。

四、教学反思

通过卷积神经网络卷积运算基本功能模块的划分和组合的教学设计及实践,使学生对深卷积神经网络的特征提取和卷积运算编程的每一段代码的功能有了深入的理解,在此基础上,学生易于掌握将各基本模块组合在一起实现不同的特征提取方法,并能通过修改相应的功能模块参数实现卷积神经网络模型在更广范围的应用。本文的教学设计适合于对初学者的课堂教学,通过教学实践对比分析发现,大部分非专业学生初步能在TensorFlow平台上开发出图像分类和图像识别的应用系统。

》在线投稿系统

*文章题目:
*作者姓名:
*电子邮箱:
*通讯地址:
*联系方式:

  备      注:

*上传稿件:

支持上传.doc,.docx,.pdf,.txt,.wps文件

投稿须知:

1、审稿结果将于1~7个工作日以邮件告知,请注意查收(包含录用通知书、审稿意见、知网CNKI查重报告)。

2、提交投稿后,若7个工作日之内未接到录用通知,则说明该文章未被录用,请另投他刊。

3、凡投寄本刊稿件,如在内容上有侵权行为或不妥之处,均应文责自负。本刊有权对来稿进行文字编辑、加工和修改,如不同意,请附说明,以便妥善处理。

4、多作者文稿署名时须征得其他作者同意,排好先后次序,通知用稿后不再改动。

5、凡投往本刊稿件一经录用发表,其版权归本刊所有。

6、本刊已全文录入中国知网、万方、维普等数据库,如作者不同意被收录,请提前申明,未申明者,本刊一律视为同意被收录。

7、请勿一稿多投。