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所示的卷积神经网络的程序代码如下。