主要内容

groupNormalizationLayer

群归一化层

自从R2020b

描述

组规范化层对每个观测值的通道分组子集上的小批数据进行独立规范化。为了加快卷积神经网络的训练速度,降低对网络初始化的敏感性,可以在卷积层和非线性之间使用群归一化层,如ReLU层。

归一化后,该层使用可学习的比例因子对输入进行缩放γ通过一个可学习的偏移量来移动它β

创建

描述

例子

= groupNormalizationLayer (numGroups创建组规范化层。

例子

= groupNormalizationLayer (numGroups名称,值创建组规范化层并设置可选的ε参数和初始化学习率和正则化,名字使用一个或多个名称-值参数的属性。您可以指定多个名称-值参数。将每个属性名称用引号括起来。

输入参数

全部展开

输入数据通道划分的组数,指定为下列之一:

  • 正整数-将入站通道划分为指定数量的组。指定的组数必须与输入数据的通道数完全相除。

  • 所有渠道的-将所有入站通道分组为一个组。这个操作也被称为层规范化。另外,使用layerNormalizationLayer

  • “channel-wise”-将所有传入通道视为单独的组。此操作也称为实例规范化。另外,使用instanceNormalizationLayer

属性

全部展开

集团标准化

要添加到小批差异的常量,指定为正标量。

该软件在归一化之前将该常数添加到小批方差中,以确保数值稳定性并避免被零除。

R2023a之前:ε必须大于等于1 e-5

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

该属性是只读的。

输入通道数,指定为下列之一:

  • “汽车”-在训练时自动确定输入通道的数量。

  • 正整数-为指定数量的输入通道配置层。NumChannels并且层输入数据的通道数必须匹配。例如,如果输入是RGB图像,则NumChannels一定是3。如果输入是包含16个滤波器的卷积层的输出,则NumChannels一定是16岁。

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

参数和初始化

函数初始化通道比例因子,指定为以下之一:

  • “的”—初始化通道比例因子为1。

  • “零”—初始化通道比例因子为零。

  • “narrow-normal”—通过从平均值为零、标准差为0.01的正态分布中独立采样来初始化通道比例因子。

  • 函数句柄-使用自定义函数初始化通道比例因子。如果指定函数句柄,则该函数必须为Scale = func(sz),在那里深圳是天平的大小。使用示例请参见指定自定义权重初始化函数

时,层只初始化通道比例因子规模房产是空的。

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

函数初始化通道偏移量,指定为以下之一:

  • “零”—用零初始化通道偏移量。

  • “的”—将通道偏移量初始化为1。

  • “narrow-normal”—通过从平均值为零,标准差为0.01的正态分布中独立采样来初始化通道偏移。

  • 函数句柄-使用自定义函数初始化通道偏移量。如果指定函数句柄,则该函数必须为Offset = func(sz),在那里深圳是天平的大小。使用示例请参见指定自定义权重初始化函数

层只初始化通道偏移抵消房产是空的。

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

渠道比例因子γ,指定为数值数组。

通道尺度因子是可学习的参数。当你用trainNetwork函数或初始化dlnetwork对象,如果规模是非空的,则软件使用规模属性作为初始值。如果规模为空,则软件使用由ScaleInitializer

根据层输入的类型trainNetworkassembleNetworklayerGraph,dlnetwork函数会自动重塑此属性,使其具有以下大小:

层的输入 财产大小
功能的输入 NumChannels1
矢量序列输入

一维图像输入(因为R2023a)

1 -NumChannels

1-D图像序列输入(因为R2023a)

二维图像输入 1-by-1-by -NumChannels
二维图像序列输入
三维图像输入 1-by-1-by-1-by -NumChannels
三维图像序列输入

数据类型:|

通道补偿β,指定为数字向量。

通道偏移量是可学习的参数。当你用trainNetwork函数或初始化dlnetwork对象,如果抵消是非空的,则软件使用抵消属性作为初始值。如果抵消为空,则软件使用由OffsetInitializer

根据层输入的类型trainNetworkassembleNetworklayerGraph,dlnetwork函数会自动重塑此属性,使其具有以下大小:

层的输入 财产大小
功能的输入 NumChannels1
矢量序列输入

一维图像输入(因为R2023a)

1 -NumChannels

1-D图像序列输入(因为R2023a)

二维图像输入 1-by-1-by -NumChannels
二维图像序列输入
三维图像输入 1-by-1-by-1-by -NumChannels
三维图像序列输入

数据类型:|

学习率和正则化

比例因子的学习率因子,指定为非负标量。

该软件将该因子乘以全局学习率,以确定一层中尺度因子的学习率。例如,如果ScaleLearnRateFactor2,则层中尺度因子的学习率是当前全局学习率的两倍。软件根据指定的设置确定全局学习率trainingOptions函数。

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

偏移量的学习率因子,指定为非负标量。

软件将这个因子乘以全局学习率来确定一层中偏移量的学习率。例如,如果OffsetLearnRateFactor2,则层中偏移量的学习率是当前全局学习率的两倍。软件根据指定的设置确定全局学习率trainingOptions函数。

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

l2比例因子的正则化因子,指定为非负标量。

软件将这个因子乘以全局的L2正则化因子来确定一层中尺度因子的学习率。例如,如果ScaleL2Factor2,然后是L。2层中偏移量的正则化是全局L的两倍2正则化因子。您可以指定全局的L2正则化因子trainingOptions函数。

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

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

软件将这个因子乘以全局的L2正则化因子来确定层中偏移量的学习率。例如,如果OffsetL2Factor2,然后是L。2层中偏移量的正则化是全局L的两倍2正则化因子。您可以指定全局的L2正则化因子trainingOptions函数。

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

图层名称,指定为字符向量或字符串标量。为数组输入trainNetworkassembleNetworklayerGraph,dlnetwork函数会自动将名称分配给具有该名称的层

数据类型:字符|字符串

该属性是只读的。

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

数据类型:

该属性是只读的。

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

数据类型:细胞

该属性是只读的。

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

数据类型:

该属性是只读的。

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

数据类型:细胞

例子

全部折叠

创建一个组规范化层,对跨三组通道的传入数据进行规范化。命名图层“groupnorm”

layer = groupNormalizationLayer(3,“名字”“groupnorm”
layer = GroupNormalizationLayer with properties: Name: 'groupnorm' NumChannels: 'auto' Hyperparameters NumGroups: 3 Epsilon: 1.0000e-05可学习参数Offset: [] Scale:[]显示所有属性

在a中包含组规范化层数组中。将传入的20个通道归一化为四组。

layers = [imageInputLayer([28 28 3]) convolution2dLayer(5,20) groupNormalizationLayer(4) reluLayer maxPooling2dLayer(2,“步”,2) fulllyconnectedlayer (10) softmaxLayer classificationLayer]
layers = 8x1 Layer array with layers: 1 " Image Input 28x28x3图像,'zerocenter'归一化2 " 2d Convolution 20个5x5卷积,stride[1 1]和padding [0 0 0 0] 3 " Group normalization Group normalization 4 " ReLU ReLU 5 " 2d Max Pooling 2x2 Max Pooling, stride[2 2]和padding [0 0 0 0] 6 " Fully Connected 10 Fully Connected Layer 7 " Softmax Softmax 8 " Classification Output crossentropyex

更多关于

全部展开

算法

全部展开

参考文献

吴宇欣,何开明。“组织正常化。”预印本提交2018年6月11日。https://arxiv.org/abs/1803.08494。

扩展功能

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

GPU代码生成
使用GPU Coder™为NVIDIA®GPU生成CUDA®代码。

版本历史

在R2020b中引入

全部展开