主要内容

maxPooling2dLayer

最大池化层

描述

二维最大池化层通过将输入划分为矩形池化区域,然后计算每个区域的最大值来进行下采样。

创建

描述

= maxPooling2dLayer (poolSize创建最大池化层并设置PoolSize财产。

例子

= maxPooling2dLayer (poolSize名称,值设置可选的的名字,HasUnpoolingOutputs属性使用名称-值对。要指定输入填充,请使用“填充”名称-值对参数。例如,maxPooling2dLayer(2步,3)根据池大小创建最大池化层(2 - 2)和步[3 3].可以指定多个名称-值对。将每个属性名用单引号括起来。

输入参数

全部展开

名称-值对参数

使用逗号分隔的名称-值对参数指定要在层输入的边缘添加的填充的大小,并设置的名字,HasUnpoolingOutputs属性。名字用单引号括起来。

例子:maxPooling2dLayer(2步,3)根据池大小创建最大池化层(2 - 2)和步[3 3]

输入边填充,指定为由逗号分隔的对组成“填充”其中一个价值观是:

  • “相同”-增加软件在训练或预测时计算出的大小的padding,使stride = 1时输出与输入大小相同。如果stride大于1,则输出大小为装天花板(inputSize /步),在那里inputSize输入的高度或宽度是和是对应维度上的步幅。如果可能的话,软件会在顶部和底部,以及左侧和右侧添加相同数量的填充。如果必须垂直添加的填充值为奇数,则软件将在底部添加额外的填充。如果必须水平添加的填充值为奇数,则软件将在右侧添加额外的填充。

  • 非负整数p-添加填充大小p到输入的所有边。

  • 向量[b]的非负整数-添加填充大小一个到输入和填充大小的顶部和底部b向左和向右。

  • 向量[t b l r]的非负整数-添加填充大小t到了顶端,b到底,l向左,然后r在输入的右边。

例子:“填充”,1将一行填充添加到顶部和底部,并将一列填充添加到输入的左侧和右侧。

例子:“填充”,“相同”添加填充,使输出与输入大小相同(如果stride = 1)。

属性

全部展开

马克斯池

池化区域的维度,指定为两个正整数的向量[w h],在那里h是高度和w是宽度。在创建层时,您可以指定PoolSize作为一个标量,对两个维度使用相同的值。

如果步幅尺寸小于各自的池化维度,则池化区域重叠。

填充尺寸PaddingSize必须小于池化区域维度PoolSize

例子:(2 - 1)指定高度为2,宽度为1的池化区域。

垂直和水平遍历输入的步长,指定为两个正整数的向量[b],在那里一个垂直步长和b是水平步长。在创建层时,您可以指定作为一个标量,对两个维度使用相同的值。

如果步幅尺寸小于各自的池化维度,则池化区域重叠。

填充尺寸PaddingSize必须小于池化区域维度PoolSize

例子:3 [2]指定垂直步长为2,水平步长为3。

要应用于输入边框的填充大小,以向量形式指定[t b l r]四个非负整数,其中t是填充到顶部,b是填充到底部,l填充应用于左侧,和r是应用于右侧的填充。

创建图层时,使用“填充”名称-值对参数指定填充大小。

例子:[1,2 2]将一行填充添加到顶部和底部,并将两列填充添加到输入的左侧和右侧。

方法来确定填充大小,指定为“手动”“相同”

的值由软件自动设置PaddingMode基于“填充”创建层时指定的值。

  • 如果你设置“填充”选项为标量或矢量的非负整数,然后软件自动设置PaddingMode“手动”

  • 如果你设置“填充”选项“相同”,然后软件自动设置PaddingMode“相同”并在训练时计算填充的大小,以便当stride = 1时输出与输入具有相同的大小。如果stride大于1,则输出大小为装天花板(inputSize /步),在那里inputSize输入的高度或宽度是和是对应维度上的步幅。如果可能的话,软件会在顶部和底部,以及左侧和右侧添加相同数量的填充。如果必须垂直添加的填充值为奇数,则软件将在底部添加额外的填充。如果必须水平添加的填充值为奇数,则软件将在右侧添加额外的填充。

请注意

填充属性将在将来的版本中删除。使用PaddingSize代替。创建一个层时,使用“填充”名称-值对参数指定填充大小。

垂直和水平应用于输入边框的填充大小,指定为矢量[b]两个非负整数,其中一个填充是否应用于输入数据的顶部和底部b应用于左右两侧的填充。

例子:[1]将一行填充添加到顶部和底部,并将一列填充添加到输入的左侧和右侧。

输出到非池化层的标志,指定为真正的

如果HasUnpoolingOutputs值=,那么Max pooling层只有一个带有名称的输出“出”

要使用最大池化层的输出作为最大反池化层的输入,请设置HasUnpoolingOutputs价值真正的.在这种情况下,max pooling层有两个额外的输出,你可以连接到max unpooling层:

  • “指标”—各池中最大值的索引。

  • “大小”-输入特征图的大小。

为了使输出到最大池化层,最大池化层的池化区域必须不重叠。

有关如何取消最大池化层的输出的更多信息,请参见maxUnpooling2dLayer

层名,指定为字符向量或字符串标量。为数组输入时,trainNetworkassembleNetworklayerGraph,dlnetwork函数自动为层分配名称的名字设置为

数据类型:字符|字符串

此属性是只读的。

该层的输入数量。该层只接受单个输入。

数据类型:

此属性是只读的。

输入层的名称。该层只接受单个输入。

数据类型:细胞

层的输出数量。

如果HasUnpoolingOutputs值=,那么Max pooling层只有一个带有名称的输出“出”

要使用最大池化层的输出作为最大反池化层的输入,请设置HasUnpoolingOutputs价值真正的.在这种情况下,max pooling层有两个额外的输出,你可以连接到max unpooling层:

  • “指标”—各池中最大值的索引。

  • “大小”-输入特征图的大小。

为了使输出到最大池化层,最大池化层的池化区域必须不重叠。

有关如何取消最大池化层的输出的更多信息,请参见maxUnpooling2dLayer

数据类型:

输出层的名称。

如果HasUnpoolingOutputs值=,那么Max pooling层只有一个带有名称的输出“出”

要使用最大池化层的输出作为最大反池化层的输入,请设置HasUnpoolingOutputs价值真正的.在这种情况下,max pooling层有两个额外的输出,你可以连接到max unpooling层:

  • “指标”—各池中最大值的索引。

  • “大小”-输入特征图的大小。

为了使输出到最大池化层,最大池化层的池化区域必须不重叠。

有关如何取消最大池化层的输出的更多信息,请参见maxUnpooling2dLayer

数据类型:细胞

例子

全部折叠

创建一个最大池化层与不重叠池化区域。

层= maxPooling2dLayer(2,“步”, 2)
layer = MaxPooling2DLayer with properties: Name: " HasUnpoolingOutputs: 0 NumOutputs: 1 OutputNames: {'out'}超参数PoolSize: [2 2] Stride: [2 2] PaddingMode: 'manual' PaddingSize: [0 0 0 0 0]

矩形区域的高度和宽度(池大小)都是2。池化区域不会重叠,因为垂直和水平遍历图像的步长(stride)也是相同的(2 - 2)

包含一个最大池化层与非重叠区域数组中。

层= [...imageInputLayer([28 28 1]) convolution2dLayer(5,20) reluLayer maxPooling2dLayer(2,“步”,2) fullyConnectedLayer(10) softmaxLayer classificationLayer]
2 " Convolution 20 5x5 convolutions with stride [1 1] and padding [0 0 0 0 0] 3 " ReLU ReLU 4 " Max Pooling 2x2 Max Pooling with stride [2 2] and padding [0 0 0 0 0] 5 " Fully Connected 10 Fully Connected Layer 6 " Softmax Softmax 7 " Classification Output crossentropyex

创建一个最大池化层与重叠池化区域。

层= maxPooling2dLayer([3 2],“步”, 2)
layer = MaxPooling2DLayer with properties: Name: " HasUnpoolingOutputs: 0 NumOutputs: 1 OutputNames: {'out'}超参数PoolSize: [3 2] Stride: [2 2] PaddingMode: 'manual' PaddingSize: [0 0 0 0 0]

该层创建大小为[3 2]的池化区域,并取每个区域中六个元素中的最大值。池化区域重叠是因为有步幅尺寸小于相应的池化维度PoolSize

包含一个最大池化层与重叠池化区域数组中。

层= [...imageInputLayer([28 28 1]) convolution2dLayer(5,20) reluLayer maxPooling2dLayer([3 2],“步”,2) fullyConnectedLayer(10) softmaxLayer classificationLayer]
2 " Convolution 20 5x5 convolutions with stride [1 1] and padding [0 0 0 0 0] 3 " ReLU ReLU 4 " Max Pooling 3x2 Max Pooling with stride [2 2] and padding [0 0 0 0 0] 5 " Fully Connected 10 Fully Connected Layer 6 " Softmax Softmax 7 " Classification Output crossentropyex

更多关于

全部展开

参考文献

[1] Nagi, J. F. Ducatelle, G. A. Di Caro, D. Ciresan, U. Meier, A. Giusti, F. Nagi, J. Schmidhuber, L. M. Gambardella。“基于视觉手势识别的最大池化卷积神经网络”。IEEE信号与图像处理应用国际会议(ICSIPA2011), 2011年。

扩展功能

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

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

在R2016a中引入