主要内容

batchNormalizationLayer

批归一化层

描述

一批标准化规范化的数据在所有观测mini-batch层每个通道独立。加快卷积神经网络的训练,减少对网络的初始化,使用批卷积层之间的归一化层和非线性,如ReLU层。

正常化后,鳞片层的输入可学的比例因子γ可学的抵消和变化β

创建

描述

= batchNormalizationLayer创建一个批处理标准化层。

例子

= batchNormalizationLayer (名称,值)创建一个批处理归一化层和设置可选的TrainedMean,TrainedVariance,ε,参数和初始化,学习速率、正规化,的名字使用一个或多个属性名称-值对。例如,batchNormalizationLayer('名称',' batchnorm ')创建一个批处理标准化层的名称“batchnorm”

属性

全部展开

批正常化

意味着数据用于预测,指定为每通道的数值向量平均值。

根据层输入的类型,trainNetwork,assembleNetwork,layerGraph,dlnetwork自动功能重塑这个属性有以下尺寸:

层的输入 财产大小
功能的输入 NumChannels1
输入向量序列
一维图像输入 1 -NumChannels
一维图像序列的输入
二维图像输入 1-by-1-by -NumChannels
二维图像序列的输入
三维图像输入 1-by-1-by-1-by -NumChannels
三维图像序列的输入

如果BatchNormalizationStatistics训练方法是“移动”,那么软件接近批规范化使用运行估计和统计在训练,训练后,设置TrainedMeanTrainedVariance属性的最新值的均值和方差的估计,分别。

如果BatchNormalizationStatistics训练方法是“人口”网络训练完成后,软件通过数据和设置TrainedMeanTrainedVariance属性的均值和方差计算整个训练数据集,分别。

层使用TrainedMeanTrainedVariance在预测正常输入。

数据类型:|

方差统计数据用于预测,指定为每通道的数字矢量方差值。

根据层输入的类型,trainNetwork,assembleNetwork,layerGraph,dlnetwork自动功能重塑这个属性有以下尺寸:

层的输入 财产大小
功能的输入 NumChannels1
输入向量序列
一维图像输入 1 -NumChannels
一维图像序列的输入
二维图像输入 1-by-1-by -NumChannels
二维图像序列的输入
三维图像输入 1-by-1-by-1-by -NumChannels
三维图像序列的输入

如果BatchNormalizationStatistics训练方法是“移动”,那么软件接近批规范化使用运行估计和统计在训练,训练后,设置TrainedMeanTrainedVariance属性的最新值的均值和方差的估计,分别。

如果BatchNormalizationStatistics训练方法是“人口”网络训练完成后,软件通过数据和设置TrainedMeanTrainedVariance属性的均值和方差计算整个训练数据集,分别。

层使用TrainedMeanTrainedVariance在预测正常输入。

数据类型:|

常数添加mini-batch方差,指定为数字标量等于或大于1 e-5

层增加这个常数mini-batch方差标准化之前确保数值稳定,避免除零。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

这个属性是只读的。

输入通道的数量,指定为以下之一:

  • “汽车”——自动确定培训时间输入通道的数量。

  • 正整数——配置层指定数量的输入通道。NumChannels和的频道数层输入数据必须匹配。例如,如果输入是一个RGB图像NumChannels必须是3。如果输入是输出的卷积和16层过滤器,然后NumChannels必须是16。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|字符|字符串

参数和初始化

函数来初始化通道规模因素,指定为以下之一:

  • “的”——初始化通道规模的因素。

  • “零”——初始化通道规模因素与零。

  • “narrow-normal”——初始化通道规模因素独立抽样从正态分布的均值为零和标准偏差为0.01。

  • 函数处理——使用一个自定义函数初始化通道规模因素。如果你指定一个函数处理,那么必须表单的功能规模= func(深圳),在那里深圳规模的大小。例如,看到的指定自定义权重的初始化函数

层只初始化通道规模因素时规模属性是空的。

数据类型:字符|字符串|function_handle

函数来初始化通道补偿,指定为以下之一:

  • “零”——初始化通道补偿为零。

  • “的”——初始化通道补偿的。

  • “narrow-normal”——初始化通道补偿独立抽样从正态分布的均值为零和标准偏差为0.01。

  • 函数处理——使用一个自定义函数初始化通道补偿。如果你指定一个函数处理,那么必须表单的功能抵消= func(深圳),在那里深圳规模的大小。例如,看到的指定自定义权重的初始化函数

层时才初始化通道补偿抵消属性是空的。

数据类型:字符|字符串|function_handle

渠道规模因素γ,指定为一个数值向量。

渠道规模因素是可学的参数。当你训练一个网络,如果规模非空的,那么trainNetwork使用规模属性的初始值。如果规模是空的,然后trainNetwork使用指定的初始化程序ScaleInitializer

根据层输入的类型,trainNetwork,assembleNetwork,layerGraph,dlnetwork自动功能重塑这个属性有以下尺寸:

层的输入 财产大小
功能的输入 NumChannels1
输入向量序列
一维图像输入 1 -NumChannels
一维图像序列的输入
二维图像输入 1-by-1-by -NumChannels
二维图像序列的输入
三维图像输入 1-by-1-by-1-by -NumChannels
三维图像序列的输入

数据类型:|

通道补偿β,指定为一个数值向量。

通道补偿参数可学的。当你训练一个网络,如果抵消非空的,那么trainNetwork使用抵消属性的初始值。如果抵消是空的,然后trainNetwork使用指定的初始化程序OffsetInitializer

根据层输入的类型,trainNetwork,assembleNetwork,layerGraph,dlnetwork自动功能重塑这个属性有以下尺寸:

层的输入 财产大小
功能的输入 NumChannels1
输入向量序列
一维图像输入 1 -NumChannels
一维图像序列的输入
二维图像输入 1-by-1-by -NumChannels
二维图像序列的输入
三维图像输入 1-by-1-by-1-by -NumChannels
三维图像序列的输入

数据类型:|

衰减值移动平均计算,指定为一个数值之间的标量01

BatchNormalizationStatistics训练方法是“移动”在每个迭代中,层更新移动平均值

μ * = λ μ μ ^ + ( 1 λ μ ) μ ,

在哪里 μ * 表示更新的意思是, λ μ 表示的意思是衰减值, μ ^ 表示层输入的均值 μ 表示移动平均值的最新值。

如果BatchNormalizationStatistics训练方法是“人口”没有影响,那么这个选项。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

移动衰减值方差计算,指定为一个数值之间的标量01

BatchNormalizationStatistics训练方法是“移动”在每个迭代中,层更新移动方差值使用

σ 2 * = λ σ 2 σ 2 ^ + ( 1 λ σ 2 ) σ 2 ,

在哪里 σ 2 * 表示更新的方差, λ σ 2 表示方差衰减值, σ 2 ^ 表示层输入的方差 σ 2 表示移动的最新值方差值。

如果BatchNormalizationStatistics训练方法是“人口”没有影响,那么这个选项。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

学习速率、正规化

学习速率因子规模因素,指定为负的标量。

软件由全球学习速率繁殖这个因素来确定学习速率在一层规模因素。例如,如果ScaleLearnRateFactor2,那么学习速率的规模因素层是当前全球学习速率的两倍。全球学习速率基于软件确定与指定的设置trainingOptions函数。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

学习速率因子补偿,指定为负的标量。

软件由全球学习速率繁殖这个因素来确定补偿的学习速率在一层。例如,如果OffsetLearnRateFactor2,那么学习速率的补偿层是当前全球学习速率的两倍。全球学习速率基于软件确定与指定的设置trainingOptions函数。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

l2正则化因子规模因素,指定为负的标量。

由全球L软件繁殖这个因素2正则化因子来确定学习速率的一层规模因素。例如,如果ScaleL2Factor2,然后L2正则化的补偿层是全球L的两倍2正则化因子。您可以指定全球L2正则化因子使用trainingOptions函数。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

l2指定的偏移量,正则化因子作为一个负的标量。

由全球L软件繁殖这个因素2正则化因子来确定补偿的学习速率在一层。例如,如果OffsetL2Factor2,然后L2正则化的补偿层是全球L的两倍2正则化因子。您可以指定全球L2正则化因子使用trainingOptions函数。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

图层名称,指定为一个特征向量或字符串标量。为数组输入,trainNetwork,assembleNetwork,layerGraph,dlnetwork函数自动分配名称层的名称

数据类型:字符|字符串

这个属性是只读的。

输入层的数量。这一层只接受一个输入。

数据类型:

这个属性是只读的。

输入层的名称。这一层只接受一个输入。

数据类型:细胞

这个属性是只读的。

输出层的数量。这一层只有一个输出。

数据类型:

这个属性是只读的。

输出层的名称。这一层只有一个输出。

数据类型:细胞

例子

全部折叠

创建一批标准化层的名字“BN1”

层= batchNormalizationLayer (“名字”,“BN1”)
层= BatchNormalizationLayer属性:名称:“BN1”NumChannels:‘汽车’Hyperparameters MeanDecay: 0.1000 VarianceDecay: 0.1000ε:1.0000 e-05可学的参数偏移:[]:[]TrainedMean状态参数:[]TrainedVariance:[]显示所有属性

包括批处理标准化层数组中。

32 32层= [imageInputLayer ([3]) convolution2dLayer (3 16“填充”1)batchNormalizationLayer reluLayer maxPooling2dLayer (2“步”32岁的,2)convolution2dLayer (3“填充”1)batchNormalizationLayer reluLayer fullyConnectedLayer (10) softmaxLayer classificationLayer]
层= 11 x1层与层:数组1”的形象输入32 x32x3图像zerocenter正常化2”二维卷积16 3 x3的隆起与步幅[1]和填充[1 1 1 1]3“批量标准化批量标准化4”ReLU ReLU 5”二维最大池2 x2马克斯池步(2 - 2)和填充[0 0 0 0]6”二维卷积32 3 x3的隆起与步幅[1]和填充[1 1 1 1]7“批量标准化批量标准化8”ReLU ReLU 9“完全连接10完全连接层”Softmax Softmax crossentropyex十一”分类输出

算法

全部展开

引用

[1]约飞,谢尔盖和基督教Szegedy。“批量标准化:加速深层网络培训通过减少内部协变量的转变。“预印本,2015年3月2日提交。https://arxiv.org/abs/1502.03167。

扩展功能

C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。

GPU的代码生成
生成NVIDIA的CUDA®代码®GPU使用GPU编码器™。

版本历史

介绍了R2017b