groupedConvolution2dLayer
描述
一层二维分组卷积分离输入通道进入组织和应用滑动卷积过滤器。使用分组卷积层channel-wise分离(也称为深度方面可分)卷积。
每组的层可变输入通过移动过滤器在垂直、水平的输入,计算权重的点积和输入,然后添加一个偏见。每一组独立的层结合曲线玲珑。如果组织的数量等于通道的数量,然后这一层执行channel-wise卷积。
创建
语法
描述
创建一个二维卷积层和设置分组层
= groupedConvolution2dLayer (filterSize
,numFiltersPerGroup
,numGroups
)FilterSize
,NumFiltersPerGroup
,NumGroups
属性。
输入参数
使用逗号分隔的名称-值对参数来指定大小的填充添加沿着边缘层的输入或设置步
,DilationFactor
,参数和初始化,学习速率、正规化,的名字
属性。在单引号附上名字。
例子:groupedConvolution2dLayer(5128 2“填充”,“相同”)
创建一个二维卷积层分组的两组128过滤器的大小5 [5]
和垫的输入,输出具有相同的大小。
填充
- - - - - -输入边缘填充
[0 0 0 0]
(默认)|向量的非负整数|“相同”
输入边缘填充,指定为逗号分隔组成的“填充”
这些值之一:
“相同”
——添加填充大小计算软件的培训或预测时间,输出具有相同的大小作为输入时,步幅等于1。如果跨越大于1,那么输出大小装天花板(inputSize /步)
,在那里inputSize
的高度或宽度输入和步
在相应的维度是进步。软件增加了相同数量的顶部和底部填充,和左和右,如果可能的话。如果必须添加垂直的填充一个奇怪的价值,那么软件添加额外的衬垫底部。如果必须添加的填充水平有一个奇怪的价值,然后软件添加额外的填充。非负整数
p
——添加填充的大小p
所有输入的边缘。向量
[b]
非负整数的加衬垫的大小一个
顶部和底部的输入和衬垫的大小b
左和右。向量
[t b l r]
非负整数的加衬垫的大小t
前,b
底部,l
向左,r
右边的输入。
例子:“填充”,1
添加一行的顶部和底部填充,和一列填充左边和右边的输入。
例子:“填充”,“相同”
添加填充,这样输出具有相同的大小作为输入(如果步幅等于1)。
属性
分组卷积
FilterSize
- - - - - -高度和宽度的过滤器
向量的两个正整数
高度和宽度的过滤器,指定为一个向量[w h]
两个正整数的h
是身高和w
是宽度。FilterSize
定义了局部区域的大小的神经元连接的输入。
创建层时,您可以指定FilterSize
作为标量使用相同的高度和宽度值。
例子:5 [5]
指定过滤器5的高度和宽度的5。
NumFiltersPerGroup
- - - - - -每组数量的过滤器
正整数
过滤器每组,指定为一个正整数。这个属性决定的频道数量的输出层。输出通道的数量FiltersPerGroup * NumGroups
。
例子:10
NumGroups
- - - - - -数量的组
正整数|“channel-wise”
数量的组,指定为一个正整数或“channel-wise”
。
如果NumGroups
是“channel-wise”
,那么软件创建一个层channel-wise卷积(也称为卷积深度方面)。在这种情况下,层决定了NumGroups
房地产在训练时间。这个值等于设置NumGroups
输入通道的数量。
组的数量必须均匀地划分层的通道输入的数量。
例子:2
步
- - - - - -步长为遍历输入
[1]
(默认)|向量的两个正整数
步长为遍历输入垂直和水平,指定为一个向量[b]
两个正整数的一个
垂直步长和吗b
是水平的步长。创建层时,您可以指定步
作为标量为两步使用相同的价值大小。
例子:3 [2]
指定一个垂直的步长2和3的水平步长。
DilationFactor
- - - - - -因素扩张卷积
[1]
(默认)|向量的两个正整数
因素扩张卷积(也称为深黑色的卷积),指定为一个向量[w h]
两个正整数的h
垂直扩张和吗w
是横向的扩张。创建层时,您可以指定DilationFactor
作为一个标量使用相同的值为水平和垂直相呼应。
使用扩张增加接受域的卷积(该区域的输入层可以看到)的层不增加参数的数量或计算。
层扩展每个滤芯过滤器插入0之间。膨胀系数确定的步长采样滤波器的输入或等同于upsampling因素。它对应于一个有效的过滤的大小(过滤器的大小- 1)*膨胀系数+ 1。例如,一个3×3过滤器与扩张的因素(2 - 2)
相当于5-by-5过滤与0之间的元素。
例子:3 [2]
PaddingSize
- - - - - -大小的填充
[0 0 0 0]
(默认)|向量的四个非负整数
大小的衬垫适用于输入边界,指定为一个向量[t b l r]
四个非负整数,t
填充应用于顶部,b
填充应用于底部,l
是填充应用到左边,r
向右填充应用。
当您创建一个层,使用“填充”
名称-值对参数来指定填充大小。
例子:[1 1 2 2]
添加一行的顶部和底部填充,和两列填充左边和右边的输入。
PaddingMode
- - - - - -方法来确定填充大小
“手动”
(默认)|“相同”
方法来确定填充大小,指定为“手动”
或“相同”
。
软件自动设置的值PaddingMode
基于“填充”
值指定在创建一个层。
如果你设置
“填充”
选择一个标量或矢量的非负整数,那么软件自动设置PaddingMode
来“手动”
。如果你设置
“填充”
选项“相同”
,那么软件自动设置PaddingMode
来“相同”
和计算填充在训练时间的大小,输出具有相同的大小作为输入时,步幅等于1。如果跨越大于1,那么输出大小装天花板(inputSize /步)
,在那里inputSize
的高度或宽度输入和步
在相应的维度是进步。软件增加了相同数量的顶部和底部填充,和左和右,如果可能的话。如果必须添加垂直的填充一个奇怪的价值,那么软件添加额外的衬垫底部。如果必须添加的填充水平有一个奇怪的价值,然后软件添加额外的填充。
PaddingValue
- - - - - -板数据值
0(默认)|标量|“symmetric-include-edge”
|“symmetric-exclude-edge”
|“复制”
板数据值,指定为以下之一:
PaddingValue |
描述 | 例子 |
---|---|---|
标量 | 垫与指定的标量值。 |
|
“symmetric-include-edge” |
垫使用镜像的输入值,包括边缘值。 |
|
“symmetric-exclude-edge” |
垫使用镜像的输入值,排除边缘值。 |
|
“复制” |
垫使用重复的边界元素的输入 |
|
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|字符
|字符串
NumChannelsPerGroup
- - - - - -每个组的通道数
“汽车”
(默认)|正整数
每个集团的渠道数量,指定为“汽车”
或者一个正整数。每个集团的渠道数量等于输入通道的数量除以组的数量。
软件自动将此属性设置为培训时间。
例子:256年
参数和初始化
WeightsInitializer
- - - - - -函数来初始化权重
“glorot”
(默认)|“他”
|“narrow-normal”
|“零”
|“的”
|函数处理
初始化权重函数,指定为以下之一:
“glorot”
——初始化权重Glorot初始值设定项[1](也称为Xavier初始化)。Glorot初始化样本独立均匀分布与零均值和方差2 / (numIn + numOut)
,在那里numIn = FilterSize (1) * FilterSize (2) * NumChannelsPerGroup
和numOut = FilterSize (1) * FilterSize (2) * NumFiltersPerGroup
。“他”
——初始化权重的初始值设定项[2]。他初始化样本正态分布与零均值和方差2 / numIn
,在那里numIn = FilterSize (1) * FilterSize (2) * NumChannelsPerGroup
。“narrow-normal”
——初始化权重独立抽样从正态分布与零均值和标准偏差0.01。“零”
——初始化权重为零。“的”
——初始化权重的。函数处理——使用一个自定义函数初始化权重。如果你指定一个函数处理,那么必须表单的功能
重量= func(深圳)
,在那里深圳
权重的大小。例如,看到的指定自定义权重的初始化函数。
层只初始化时的重量权重
属性是空的。
数据类型:字符
|字符串
|function_handle
BiasInitializer
- - - - - -函数来初始化的偏见
“零”
(默认)|“narrow-normal”
|“的”
|函数处理
函数来初始化偏见,指定为以下之一:
“零”
——初始化与零偏差。“的”
——初始化偏见的。“narrow-normal”
——初始化倾向独立抽样从正态分布的均值为零,标准差为0.01。函数处理与一个自定义函数,初始化偏见。如果你指定一个函数处理,那么必须表单的功能
偏见= func(深圳)
,在那里深圳
偏差的大小。
层只初始化时的偏见偏见
属性是空的。
数据类型:字符
|字符串
|function_handle
权重
- - - - - -层的重量
[]
(默认)|数字数组
一层一层的权重,指定为一个数字数组。
层权重可学的参数。您可以指定权重的初始值直接使用权重
层的属性。当你训练一个网络,如果权重
属性层的非空的trainNetwork
使用权重
属性的初始值。如果权重
属性是空的,那么trainNetwork
使用指定的初始化程序WeightsInitializer
层的属性。
在培训时,权重
是一个FilterSize (1)
——- - - - - -FilterSize (2)
——- - - - - -NumChannelsPerGroup
——- - - - - -NumFiltersPerGroup
——- - - - - -NumGroups
数组,NumInputChannels
输入层的是渠道的数量。
数据类型:单
|双
偏见
- - - - - -层的偏见
[]
(默认)|数字数组
一层一层的偏见,指定为一个数字数组。
层偏差是可学的参数。当你训练一个神经网络,如果偏见
非空的,那么trainNetwork
使用偏见
属性的初始值。如果偏见
是空的,然后trainNetwork
使用指定的初始化程序BiasInitializer
。
在培训时,偏见
是一个1-by-1-by——NumFiltersPerGroup
——- - - - - -NumGroups
数组中。
数据类型:单
|双
学习速率、正规化
WeightLearnRateFactor
- - - - - -学习速率因子权重
1
(默认)|负的标量
学习速率因子权重,指定为负的标量。
软件由全球学习速率繁殖这个因素确定权重的学习速率这一层。例如,如果WeightLearnRateFactor
是2
,然后在这一层权值的学习速率是当前全球学习速率的两倍。全球学习速率决定了基于的软件设置您指定使用trainingOptions
函数。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
BiasLearnRateFactor
- - - - - -学习速率因子偏见
1
(默认)|负的标量
学习速率因子的偏见,指定为负的标量。
软件由全球学习速率繁殖这个因素来确定学习速率的偏见在这一层。例如,如果BiasLearnRateFactor
是2
,那么学习速率的偏见层是当前全球学习速率的两倍。全球学习速率决定了基于的软件设置您指定使用trainingOptions
函数。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
WeightL2Factor
- - - - - -l2正则化因子权重
1(默认)|负的标量
l2正则化因子权重,指定为负的标量。
全球的软件增加这个因素l2正则化因子来确定l2正则化这一层的权重。例如,如果WeightL2Factor
是2
,那么l2正则化这一层的权重是全球的两倍l2正则化因子。您可以指定全球l2正则化因子使用trainingOptions
函数。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
BiasL2Factor
- - - - - -l2正则化因子的偏见
0
(默认)|负的标量
l2正则化因子的偏见,指定为负的标量。
全球的软件增加这个因素l2正则化因子来确定l2在这一层正规化的偏见。例如,如果BiasL2Factor
是2
,那么l2正规化的偏见这一层是全球的两倍l2正则化因子。决定了全球的软件l2正则化因子的基础上,设置您指定使用trainingOptions
函数。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
层
的名字
- - - - - -层的名字
”
(默认)|特征向量|字符串标量
图层名称,指定为一个特征向量或字符串标量。为层
数组输入,trainNetwork
,assembleNetwork
,layerGraph
,dlnetwork
函数自动分配名称层的名称”
。
数据类型:字符
|字符串
NumInputs
- - - - - -输入数量
1
(默认)
这个属性是只读的。
输入层的数量。这一层只接受一个输入。
数据类型:双
InputNames
- - - - - -输入名字
{"在"}
(默认)
这个属性是只读的。
输入层的名称。这一层只接受一个输入。
数据类型:细胞
NumOutputs
- - - - - -数量的输出
1
(默认)
这个属性是只读的。
输出层的数量。这一层只有一个输出。
数据类型:双
OutputNames
- - - - - -输出的名字
{“出”}
(默认)
这个属性是只读的。
输出层的名称。这一层只有一个输出。
数据类型:细胞
例子
创建分组卷积层
创建一个分组卷积与3组10层过滤器,每个11的高度和宽度,这个名字“gconv1”
。
3层= groupedConvolution2dLayer(11日,10日,“名字”,“gconv1”)
层= GroupedConvolution2DLayer属性:名称:‘gconv1 Hyperparameters FilterSize: 11 [11] NumGroups: 3 NumChannelsPerGroup:“汽车”NumFiltersPerGroup: 10步:[1]DilationFactor: [1] PaddingMode:“手动”PaddingSize: [0 0 0 0] PaddingValue: 0可学的参数权重:[]偏见:[]显示所有属性
创建Channel-Wise卷积层
创建一个channel-wise卷积(也称为深度方面卷积)层组10过滤器,每个11的高度和宽度,这个名字“cwconv1”
。
10层= groupedConvolution2dLayer(11日,“channel-wise”,“名字”,“cwconv1”)
层= GroupedConvolution2DLayer属性:名称:‘cwconv1 Hyperparameters FilterSize: 11 [11] NumGroups:“channel-wise”NumChannelsPerGroup:“汽车”NumFiltersPerGroup: 10步:[1]DilationFactor: [1] PaddingMode:“手动”PaddingSize: [0 0 0 0] PaddingValue: 0可学的参数权重:[]偏见:[]显示所有属性
创建层Channel-Wise分离卷积
典型的卷积神经网络包含块的卷积,批正常化,和ReLU层。例如,
filterSize = 3;numFilters = 16;convLayers = [convolution2dLayer filterSize numFilters,“步”2,“填充”,“相同”)batchNormalizationLayer reluLayer];
channel-wise分离卷积(也称为深度方面分离卷积),代替卷积块channel-wise卷积和逐点卷积块。
指定过滤器的大小和步幅channel-wise卷积和卷积过滤器的逐点的数量。channel-wise卷积,每组指定一个过滤器。对于逐点卷积,指定过滤器的尺寸1convolution2dLayer
。
cwsConvLayers = [groupedConvolution2dLayer filterSize 1“channel-wise”,“步”2,“填充”,“相同”numFilters) batchNormalizationLayer reluLayer convolution2dLayer (1,“填充”,“相同”)batchNormalizationLayer reluLayer];
创建一个网络层包含channel-wise分离卷积。
层= [imageInputLayer ([227 227 3]) convolution2dLayer(3, 32岁“填充”,“相同”)batchNormalizationLayer reluLayer groupedConvolution2dLayer (3、1“channel-wise”,“步”2,“填充”,“相同”)batchNormalizationLayer reluLayer convolution2dLayer(1, 16岁,“填充”,“相同”)batchNormalizationLayer reluLayer maxPooling2dLayer (2“步”,2)fullyConnectedLayer (5) softmaxLayer classificationLayer];
算法
层的输入和输出格式
层一层一层数组或图后续层传递数据格式化dlarray
对象。的格式dlarray
对象是一个字符串,其中每个字符描述相应的维度的数据。这些字符的格式由一个或多个:
“S”
——空间“C”
——频道“B”
——批“T”
——时间“U”
——未指明的
例如,二维图像数据表示成一个四维数组,第一个二维对应于图像的空间维度,第三维对应于图像的通道,第四个维度对应批维度,可以被描述为有格式“SSCB”
(空间、空间、通道、批)。
你可以与这些交互dlarray
对象等自动分化工作流开发一个自定义图层,使用functionLayer
对象,或使用向前
和预测
功能与dlnetwork
对象。
此表显示了支持输入格式万博1manbetxGroupedConvolution2DLayer
对象和相应的输出格式。如果输出层的传递给一个定制的层不继承nnet.layer.Formattable
类,或FunctionLayer
对象的Formattable
属性设置为0
(假),然后层接收未格式化dlarray
对象的尺寸要求相应的这个表的格式。
输入格式 | 输出格式 |
---|---|
|
|
|
|
在dlnetwork
对象,GroupedConvolution2DLayer
对象也支持这些输入和输出格万博1manbetx式的组合。
输入格式 | 输出格式 |
---|---|
|
|
|
|
引用
[1]Glorot,泽维尔,Yoshua Bengio。“理解的难度训练前馈神经网络。”在《十三人工智能国际会议上和统计,249 - 356。意大利撒丁岛:AISTATS, 2010。https://proceedings.mlr.press/v9/glorot10a/glorot10a.pdf
[2]他开明、象屿张任Shaoqing,剑太阳。“深深入整流器:超越人类表现ImageNet分类。”在学报2015年IEEE计算机视觉国际会议,1026 - 1034。华盛顿特区:IEEE计算机视觉的社会,2015年。https://doi.org/10.1109/ICCV.2015.123
扩展功能
C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。
使用笔记和限制:
代码生成的手臂计算库不支持二维分组卷积的层万博1manbetx
NumGroups
属性设置为一个整数值大于2。对于代码生成,
PaddingValue
参数必须等于0
,这是默认值。
GPU的代码生成
生成NVIDIA的CUDA®代码®GPU使用GPU编码器™。
使用笔记和限制:
不支持代码生成的手臂马里GPU的二维卷积层分组万博1manbetx
NumGroups
属性设置为“channel-wise”
或一个值大于2。对于代码生成,
PaddingValue
参数必须等于0
,这是默认值。
版本历史
介绍了R2019a
Beispiel offnen
您有一张这本Beispiels geanderte版本。您这本Beispiel麻省理工学院古老Anderungen offnen吗?
MATLAB-Befehl
您有窗户的链接geklickt,汪汪汪der diesem MATLAB-Befehl entspricht:
在das MATLAB-Befehlsfenster Fuhren您窝Befehl军队Eingabe来自。浏览器unterstutzen MATLAB-Befehle。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。