- 深度学习经典案例解析:基于MATLAB
- 赵小川
- 891字
- 2021-10-27 15:43:56
2.6 其他与构建深度网络相关的函数
1.泄露ReLU层:leakyReluLayer函数
功能:该函数创建一个泄露ReLU(Leaky ReLU)层。其中,scale通常是一个非常小的值。Leaky ReLU设计的目的是解决梯度在传播过程中可能带来的ReLU失效问题,即ReLU函数因为超过阈值而几乎永久关闭,导致无法更新权重参数。理论上讲,Leaky ReLU有ReLU的所有优点,并且不会出现ReLU失效问题。
用法:
语法①
layer = leakyReluLayer。
输出:layer为Leaky ReLU层。
语法②
layer = leakyReluLayer(scale)。
输入:参数scale为一个数值标量,用以与负输入相乘。
输出:layer为Leaky ReLU层。
语法③
layer = leakyReluLayer(scale,'Name',Name)。
输入:参数scale为一个数值标量,用以与负输入相乘;Name为该层的名称。
输出:layer为Leaky ReLU层。
2.限幅ReLU层:clippedReluLayer函数
功能:该函数创建一个限幅ReLU(Clipped ReLU)层。Clipped ReLU函数对激活的最大值进行了限制。
用法:
语法①
layer = clippedReluLayer(ceiling)。
输入:ceiling为裁剪上限。
输出:layer为限幅ReLU层。
语法②
layer = clippedReluLayer(ceiling,'Name',Name)。
输入:ceiling为裁剪上限,Name为该层的名称。
输出:layer为限幅ReLU层。
3.反最大池化层:maxUnpooling2 dLayer函数
功能:该函数创建一个反最大池化层。要进行反最大池化操作,需要在池化过程中记录最大激活值的坐标位置,然后在反池化时,把池化过程中最大激活值所在位置坐标值激活,其他的值设置为0。这种操作由于丢失了其他激活值的大小和位置信息,只是一种近似计算。
用法:
语法①
layer = maxUnpooling2 dLayer。
输出:layer为最大反池化层。
语法②
layer = maxUnpooling2dLayer('Name',Name)。
输入:Name为该层的名称。
输出:layer为最大反池化层。
4.跨通道归一化层:CrossChannelNormalizationLayer函数
功能:该函数创建一个通道级的归一化层。
用法:
语法①
layer = crossChannelNormalizationLayer(windowChannelSize)。
输入:windowChannelSize指定通道窗口的大小,控制用于归一化每个元素的通道数。
输出:layer为CrossChannelNormalization层。
语法②
layer = crossChannelNormalizationLayer(windowChannelSize,Name,Value)。
可以通过指定“名称-取值”对(Name和Value)来配置特定属性(将每种属性名称括在单引号中),具体含义见表2-6。
表2-6 crossChannelNormalizationLayer函数参数含义
5.转置的卷积层:transposedConv2 dLayer函数
功能:该函数创建一个转置的二维卷积层。注意该层是卷积的转置,不执行反卷积操作。
用法:
语法①
layer = transposedConv2dLayer(filterSize,numFilters)。
输入:filterSize为滤波器大小,格式为具有两个整数的向量[h w],其中h是高,w是宽;numFilters为滤波器数。
输出:layer为转置的二维卷积层。
语法②
layer = transposedConv2dLayer(filterSize,numFilters,Name,Value)。
可以通过指定“名称-取值”对(Name和Value)来配置特定属性(将每种属性名称括在单引号中),具体含义见表2-7。
表2-7 transposedConv2dLayer函数参数含义