3.3 构建卷积神经网络

针对3.2节中所提出的需求,构建具有三个卷积层的卷积神经网络,网络结构及各部分的参数见表3-1。

表3-1 所设计的卷积神经网络及各部分的参数

(续)

本节实例涉及的卷积层、批量归一化层、非线性激励函数、最大池化层、全连接层的构建函数及其使用方法详见本书的2.4节。

本节详细介绍平均池化层、丢弃层、分类层的构建函数及其使用方法。

1.averagePooling2 dLayer函数

功能:对输入的特征图进行二维平均池化。

用法:

语法①

layer = averagePooling2dLayer(poolSize)。

输入:poolSize为池化区域的大小。

输出:平均池化层。

语法②

layer = averagePooling2dLayer(poolSize,Name,Value)。

可以通过指定“名称-取值”对(Name和Value)来配置特定属性(将每种属性名称括在单引号中),具体含义见表3-2。

表3-2 averagePooling2dLayer函数参数含义

例如,averagePooling2dLayer(2,'Stride',2),这个语句实现的功能为创建一个平均池化层,池化层的区域为2×2,进行池化运算的步长为2。

2.创建Dropout层:dropoutLayer函数

功能:创建一个丢弃(Dropout)层,该层按给定的概率随机地将输入元素设置为零。

用法:

语法①

layer = dropoutLayer。

该用法是将输入元素的50%随机置零。

语法②

layer = dropoutLayer(probability)。

输入:随机置零的概率。

输出:丢弃层。

例如,dropoutLayer (0.2),这个语句实现的功能为创建一个丢弃层,将输入元素的20%随机置零。

3.创建回归层:regressionLayer函数

功能:创建一个回归(Regression)层。

用法:layer = regressionLayer。

实现表3-1所示的卷积神经网络的程序代码如下。