batchNormalizationLayer
批归一化层
描述
一批标准化规范化的数据在所有观测mini-batch层每个通道独立。加快卷积神经网络的训练,减少对网络的初始化,使用批卷积层之间的归一化层和非线性,如ReLU层。
正常化后,鳞片层的输入可学的比例因子γ可学的抵消和变化β。
创建
描述
创建一个批处理标准化层。层
= batchNormalizationLayer
创建一个批处理归一化层和设置可选的层
= batchNormalizationLayer (名称,值
)TrainedMean
,TrainedVariance
,ε
,参数和初始化,学习速率、正规化,的名字
使用一个或多个属性名称-值对。例如,batchNormalizationLayer('名称',' batchnorm ')
创建一个批处理标准化层的名称“batchnorm”
。
属性
批正常化
TrainedMean
- - - - - -意味着数据用于预测
数值向量
意味着数据用于预测,指定为每通道的数值向量平均值。
根据层输入的类型,trainNetwork
,assembleNetwork
,layerGraph
,dlnetwork
自动功能重塑这个属性有以下尺寸:
层的输入 | 财产大小 |
---|---|
功能的输入 | NumChannels 1 |
输入向量序列 | |
一维图像输入 | 1 -NumChannels |
一维图像序列的输入 | |
二维图像输入 | 1-by-1-by -NumChannels |
二维图像序列的输入 | |
三维图像输入 | 1-by-1-by-1-by -NumChannels |
三维图像序列的输入 |
如果BatchNormalizationStatistics
训练方法是“移动”
,那么软件接近批规范化使用运行估计和统计在训练,训练后,设置TrainedMean
和TrainedVariance
属性的最新值的均值和方差的估计,分别。
如果BatchNormalizationStatistics
训练方法是“人口”
网络训练完成后,软件通过数据和设置TrainedMean
和TrainedVariance
属性的均值和方差计算整个训练数据集,分别。
层使用TrainedMean
和TrainedVariance
在预测正常输入。
数据类型:单
|双
TrainedVariance
- - - - - -用于预测方差的统计
数值向量
方差统计数据用于预测,指定为每通道的数字矢量方差值。
根据层输入的类型,trainNetwork
,assembleNetwork
,layerGraph
,dlnetwork
自动功能重塑这个属性有以下尺寸:
层的输入 | 财产大小 |
---|---|
功能的输入 | NumChannels 1 |
输入向量序列 | |
一维图像输入 | 1 -NumChannels |
一维图像序列的输入 | |
二维图像输入 | 1-by-1-by -NumChannels |
二维图像序列的输入 | |
三维图像输入 | 1-by-1-by-1-by -NumChannels |
三维图像序列的输入 |
如果BatchNormalizationStatistics
训练方法是“移动”
,那么软件接近批规范化使用运行估计和统计在训练,训练后,设置TrainedMean
和TrainedVariance
属性的最新值的均值和方差的估计,分别。
如果BatchNormalizationStatistics
训练方法是“人口”
网络训练完成后,软件通过数据和设置TrainedMean
和TrainedVariance
属性的均值和方差计算整个训练数据集,分别。
层使用TrainedMean
和TrainedVariance
在预测正常输入。
数据类型:单
|双
ε
- - - - - -不断增加mini-batch方差
1 e-5
(默认)|数字标量
常数添加mini-batch方差,指定为数字标量等于或大于1 e-5
。
层增加这个常数mini-batch方差标准化之前确保数值稳定,避免除零。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
NumChannels
- - - - - -数量的输入通道
“汽车”
(默认)|正整数
这个属性是只读的。
输入通道的数量,指定为以下之一:
“汽车”
——自动确定培训时间输入通道的数量。正整数——配置层指定数量的输入通道。
NumChannels
和的频道数层输入数据必须匹配。例如,如果输入是一个RGB图像NumChannels
必须是3。如果输入是输出的卷积和16层过滤器,然后NumChannels
必须是16。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|字符
|字符串
参数和初始化
ScaleInitializer
- - - - - -函数来初始化通道规模因素
“的”
(默认)|“narrow-normal”
|函数处理
函数来初始化通道规模因素,指定为以下之一:
“的”
——初始化通道规模的因素。“零”
——初始化通道规模因素与零。“narrow-normal”
——初始化通道规模因素独立抽样从正态分布的均值为零和标准偏差为0.01。函数处理——使用一个自定义函数初始化通道规模因素。如果你指定一个函数处理,那么必须表单的功能
规模= func(深圳)
,在那里深圳
规模的大小。例如,看到的指定自定义权重的初始化函数。
层只初始化通道规模因素时规模
属性是空的。
数据类型:字符
|字符串
|function_handle
OffsetInitializer
- - - - - -函数来初始化通道补偿
“零”
(默认)|“的”
|“narrow-normal”
|函数处理
函数来初始化通道补偿,指定为以下之一:
“零”
——初始化通道补偿为零。“的”
——初始化通道补偿的。“narrow-normal”
——初始化通道补偿独立抽样从正态分布的均值为零和标准偏差为0.01。函数处理——使用一个自定义函数初始化通道补偿。如果你指定一个函数处理,那么必须表单的功能
抵消= func(深圳)
,在那里深圳
规模的大小。例如,看到的指定自定义权重的初始化函数。
层时才初始化通道补偿抵消
属性是空的。
数据类型:字符
|字符串
|function_handle
规模
- - - - - -渠道规模因素
[]
(默认)|数值向量
渠道规模因素γ,指定为一个数值向量。
渠道规模因素是可学的参数。当你训练一个网络,如果规模
非空的,那么trainNetwork
使用规模
属性的初始值。如果规模
是空的,然后trainNetwork
使用指定的初始化程序ScaleInitializer
。
根据层输入的类型,trainNetwork
,assembleNetwork
,layerGraph
,dlnetwork
自动功能重塑这个属性有以下尺寸:
层的输入 | 财产大小 |
---|---|
功能的输入 | NumChannels 1 |
输入向量序列 | |
一维图像输入 | 1 -NumChannels |
一维图像序列的输入 | |
二维图像输入 | 1-by-1-by -NumChannels |
二维图像序列的输入 | |
三维图像输入 | 1-by-1-by-1-by -NumChannels |
三维图像序列的输入 |
数据类型:单
|双
抵消
- - - - - -通道补偿
[]
(默认)|数值向量
通道补偿β,指定为一个数值向量。
通道补偿参数可学的。当你训练一个网络,如果抵消
非空的,那么trainNetwork
使用抵消
属性的初始值。如果抵消
是空的,然后trainNetwork
使用指定的初始化程序OffsetInitializer
。
根据层输入的类型,trainNetwork
,assembleNetwork
,layerGraph
,dlnetwork
自动功能重塑这个属性有以下尺寸:
层的输入 | 财产大小 |
---|---|
功能的输入 | NumChannels 1 |
输入向量序列 | |
一维图像输入 | 1 -NumChannels |
一维图像序列的输入 | |
二维图像输入 | 1-by-1-by -NumChannels |
二维图像序列的输入 | |
三维图像输入 | 1-by-1-by-1-by -NumChannels |
三维图像序列的输入 |
数据类型:单
|双
MeanDecay
- - - - - -衰减值移动平均计算
0.1(默认)|数字之间的标量0
和1
衰减值移动平均计算,指定为一个数值之间的标量0
和1
。
当BatchNormalizationStatistics
训练方法是“移动”
在每个迭代中,层更新移动平均值
在哪里 表示更新的意思是, 表示的意思是衰减值, 表示层输入的均值 表示移动平均值的最新值。
如果BatchNormalizationStatistics
训练方法是“人口”
没有影响,那么这个选项。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
VarianceDecay
- - - - - -衰减值方差计算移动
0.1(默认)|数字之间的标量0
和1
移动衰减值方差计算,指定为一个数值之间的标量0
和1
。
当BatchNormalizationStatistics
训练方法是“移动”
在每个迭代中,层更新移动方差值使用
在哪里 表示更新的方差, 表示方差衰减值, 表示层输入的方差 表示移动的最新值方差值。
如果BatchNormalizationStatistics
训练方法是“人口”
没有影响,那么这个选项。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
学习速率、正规化
ScaleLearnRateFactor
- - - - - -学习速率因子规模因素
1
(默认)|负的标量
学习速率因子规模因素,指定为负的标量。
软件由全球学习速率繁殖这个因素来确定学习速率在一层规模因素。例如,如果ScaleLearnRateFactor
是2
,那么学习速率的规模因素层是当前全球学习速率的两倍。全球学习速率基于软件确定与指定的设置trainingOptions
函数。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
OffsetLearnRateFactor
- - - - - -学习速率的因素进行补偿
1
(默认)|负的标量
学习速率因子补偿,指定为负的标量。
软件由全球学习速率繁殖这个因素来确定补偿的学习速率在一层。例如,如果OffsetLearnRateFactor
是2
,那么学习速率的补偿层是当前全球学习速率的两倍。全球学习速率基于软件确定与指定的设置trainingOptions
函数。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
ScaleL2Factor
- - - - - -l2正则化因子规模因素
1
(默认)|负的标量
l2正则化因子规模因素,指定为负的标量。
由全球L软件繁殖这个因素2正则化因子来确定学习速率的一层规模因素。例如,如果ScaleL2Factor
是2
,然后L2正则化的补偿层是全球L的两倍2正则化因子。您可以指定全球L2正则化因子使用trainingOptions
函数。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
OffsetL2Factor
- - - - - -l2正则化因子补偿
1
(默认)|负的标量
l2指定的偏移量,正则化因子作为一个负的标量。
由全球L软件繁殖这个因素2正则化因子来确定补偿的学习速率在一层。例如,如果OffsetL2Factor
是2
,然后L2正则化的补偿层是全球L的两倍2正则化因子。您可以指定全球L2正则化因子使用trainingOptions
函数。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
层
的名字
- - - - - -层的名字
”
(默认)|特征向量|字符串标量
图层名称,指定为一个特征向量或字符串标量。为层
数组输入,trainNetwork
,assembleNetwork
,layerGraph
,dlnetwork
函数自动分配名称层的名称”
。
数据类型:字符
|字符串
NumInputs
- - - - - -输入数量
1
(默认)
这个属性是只读的。
输入层的数量。这一层只接受一个输入。
数据类型:双
InputNames
- - - - - -输入名字
{'在'}
(默认)
这个属性是只读的。
输入层的名称。这一层只接受一个输入。
数据类型:细胞
NumOutputs
- - - - - -数量的输出
1
(默认)
这个属性是只读的。
输出层的数量。这一层只有一个输出。
数据类型:双
OutputNames
- - - - - -输出的名字
{“出”}
(默认)
这个属性是只读的。
输出层的名称。这一层只有一个输出。
数据类型:细胞
例子
创建批处理标准化层
创建一批标准化层的名字“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十一”分类输出
算法
批归一化层
一批标准化规范化的数据在所有观测mini-batch层每个通道独立。加快卷积神经网络的训练,减少对网络的初始化,使用批卷积层之间的归一化层和非线性,如ReLU层。
第一层可实现每个通道的激活减去mini-batch均值和除以mini-batch标准差。然后,层变化的输入可学的抵消β可学的比例因子和尺度γ。β和γ本身可学的参数更新在网络训练。
批量标准化层正常激活和梯度通过神经网络传播,使网络训练一个更简单的优化问题。充分利用这个事实,你可以尝试增加了学习速率。自优化问题更简单,参数更新可以更大,网络可以更快的学习。你也可以尝试减少L2和辍学正规化。批归一化层,激活特定的图像在训练取决于图像出现在同一个mini-batch发生。充分利用这个正则化效果,试着在每次训练前训练数据时代洗牌。指定的频率调整数据训练期间,使用“洗牌”
名称-值对的观点trainingOptions
。
批处理规范化操作可实现元素x我的输入,首先计算的意思μB和方差σB2在空间、时间和观察每个通道独立维度。然后,计算归一化激活
在哪里ϵ是一个常数,提高数值稳定时方差很小。
允许输入的可能性为零均值和单位方差不是最佳的操作遵循批正常化,批处理规范化操作进一步转变和尺度转换激活使用
的偏移量β和规模因素γ在网络训练可学的参数更新。
进行预测和网络训练后,批规范化需要一个固定的均值和方差标准化数据。这个固定的均值和方差可以计算从训练数据训练后,或近似在训练使用运行统计计算。
如果BatchNormalizationStatistics
训练方法是“移动”
,那么软件接近批规范化使用运行估计和统计在训练,训练后,设置TrainedMean
和TrainedVariance
属性的最新值的均值和方差的估计,分别。
如果BatchNormalizationStatistics
训练方法是“人口”
网络训练完成后,软件通过数据和设置TrainedMean
和TrainedVariance
属性的均值和方差计算整个训练数据集,分别。
层使用TrainedMean
和TrainedVariance
在预测正常输入。
层的输入和输出格式
层一层一层数组或图后续层传递数据格式化dlarray
对象。的格式dlarray
对象是一个字符串,其中每个字符描述相应的维度的数据。这些字符的格式由一个或多个:
“S”
——空间“C”
——频道“B”
——批“T”
——时间“U”
——未指明的
例如,二维图像数据表示成一个四维数组,第一个二维对应于图像的空间维度,第三维对应于图像的通道,第四个维度对应批维度,可以被描述为有格式“SSCB”
(空间、空间、通道、批)。
你可以与这些交互dlarray
对象等自动分化工作流开发一个自定义图层,使用functionLayer
对象,或使用向前
和预测
功能与dlnetwork
对象。
此表显示了支持输入格式金宝appBatchNormalizationLayer
对象和相应的输出格式。如果输出层的传递给一个定制的层不继承nnet.layer.Formattable
类,或FunctionLayer
对象的Formattable
属性设置为0
(假),然后层接收未格式化dlarray
对象的尺寸要求相应的这个表的格式。
输入格式 | 输出格式 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
引用
[1]约飞,谢尔盖和基督教Szegedy。“批量标准化:加速深层网络培训通过减少内部协变量的转变。“预印本,2015年3月2日提交。https://arxiv.org/abs/1502.03167。
扩展功能
C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。
GPU的代码生成
生成NVIDIA的CUDA®代码®GPU使用GPU编码器™。
版本历史
介绍了R2017b
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。