主要内容

maxPooling3dLayer

三维最大池化层

描述

3-D最大池化层通过将三维输入划分为立方体池化区域来执行下采样,然后计算每个区域的最大值。

层池的维度取决于层的输入:

  • 对于3-D图像输入(具有五个维度的数据,对应于三个空间维度中的像素、通道和观测值),层在空间维度上进行池。

  • 对于3-D图像序列输入(具有六个维度的数据,对应于三个空间维度中的像素、通道、观测值和时间步长),层在空间维度上进行池。

  • 对于二维图像序列输入(具有五个维度的数据,对应于两个空间维度中的像素、通道、观测值和时间步长),层池在空间和时间维度上。

创建

描述

= maxPooling3dLayer (poolSize创建一个3d最大池层,并设置PoolSize财产。

例子

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

输入参数

全部展开

名称-值参数

指定可选的参数对为Name1 = Value1,…,以=家,在那里名字是参数名和吗价值是对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来名字在报价。

例子:maxPooling3dLayer(2步,3)创建一个具有池大小的3-D最大池层[2 2 2]和步[3 3 3]

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

  • “相同”-添加由软件在训练或预测时计算的大小填充,以便在步幅等于1时输出与输入具有相同的大小。如果步幅大于1,则输出大小为装天花板(inputSize /步),在那里inputSize是输入和的高度、宽度还是深度是相应维度中的步幅。如果可能的话,软件会在顶部和底部、左侧和右侧以及前部和后部添加相同数量的填充。如果给定维度中的填充值为奇数,则软件将额外的填充添加到输入中作为延迟。换句话说,软件在底部添加了额外的垂直填充,在右侧添加了额外的水平填充,在输入的后面添加了额外的深度填充。

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

  • 三元素向量[a b c]非负整数-添加大小的填充一个到顶部和底部,大小的填充b左和右,并填充大小c前面和后面的输入。

  • 2×3矩阵[t l f;b r k]非负整数-添加大小的填充t到顶端,b在底部,l在左边,r在右边,f到前面去,还有k到输入的后面。换句话说,第一行指定三个维度中的预加,第二行定义延迟。

例子:“填充”,1在顶部和底部添加一行填充,在左侧和右侧添加一列填充,并在输入的前后添加一个填充平面。

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

属性

全部展开

马克斯池

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

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

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

例子:[2 11 1]指定高度为2,宽度为1,深度为1的池化区域。

在三维空间中遍历输入的步长,指定为向量[a b c]三个正整数,其中一个为垂直步长,b是水平步长,和c是沿深度方向的步长。在创建图层时,您可以指定作为标量,以便在所有三个方向上对步长使用相同的值。

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

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

例子:[2 3 1]指定垂直步长为2,水平步长为3,以及沿深度为1的步长。

应用于输入边框的填充大小,指定为2 × 3矩阵[t l f;b r k]非负整数的,其中tb是否在垂直方向上对顶部和底部施加填充?lr填充是否在水平方向上应用于左侧和右侧,以及fk是沿着深度应用到前面和后面的填充。换句话说,第一行指定三个维度中的预加,第二行定义延迟。

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

例子:[1 2 4;1 2 4]在顶部和底部添加一行填充,在左侧和右侧添加两列填充,并在输入的前后添加四个填充平面。

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

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

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

  • 如果你设置“填充”选项“相同”,则软件自动设置PaddingMode“相同”并计算训练时填充的大小,以便当步幅等于1时,输出与输入具有相同的大小。如果步幅大于1,则输出大小为装天花板(inputSize /步),在那里inputSize是输入和的高度、宽度还是深度是相应维度中的步幅。如果可能的话,软件会在顶部和底部、左侧和右侧以及前部和后部添加相同数量的填充。如果给定维度中的填充值为奇数,则软件将额外的填充添加到输入中作为延迟。换句话说,软件在底部添加了额外的垂直填充,在右侧添加了额外的水平填充,在输入的后面添加了额外的深度填充。

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

数据类型:字符|字符串

该属性是只读的。

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

数据类型:

该属性是只读的。

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

数据类型:细胞

该属性是只读的。

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

数据类型:

该属性是只读的。

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

数据类型:细胞

例子

全部折叠

创建一个不重叠池化区域的最大池化3-D层。

layer = maxPooling3dLayer(2,“步”, 2)
layer = MaxPooling3DLayer with properties: Name: " NumOutputs: 1 OutputNames: {'out'} Hyperparameters PoolSize: [2 2 2] Stride: [2 2 2] PaddingMode: 'manual' PaddingSize: [2x3 double]

立方体区域(池大小)的高度、宽度和深度为2。遍历图像的步长(stride)在所有维度上都是2。池化区域不会重叠,因为步长大于或等于所有维度上对应的池大小。

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

图层= [image3dInputLayer([28 28 28 28 3])卷积3dlayer (5,20) reluLayer maxPooling3dLayer(2,“步”,2) fulllyconnectedlayer (10) softmaxLayer classificationLayer]
1”3d图像输入28x28x28x3图像,“零中心”归一化2”卷积20个5x5x5个卷积,步幅[1 11 1],填充[0 0 0];3 " ReLU ReLU 4 " 3- d Max Pooling 2x2x2 Max Pooling with stride [2 22 2] and padding [0 0 0;0 0 0] 5 "全连接10 "全连接层6 " Softmax Softmax 7 "分类输出交叉交叉

创建一个最大池化3-D层,其中包含重叠池化区域,并为输入的顶部和底部填充。

layer = maxPooling3dLayer([3 2 2],“步”2,“填充”,[1 0 0])
layer = MaxPooling3DLayer with properties: Name: " NumOutputs: 1 OutputNames: {'out'} Hyperparameters PoolSize: [3 2 2] Stride: [2 2 2] PaddingMode: 'manual' PaddingSize: [2x3 double]

这一层创建大小为3 × 2 × 2的池化区域,并获取每个区域中12个元素的最大值。所有维度的步幅都是2。池化区域重叠是因为存在跨步维度小于各自的池化维度PoolSize

算法

全部展开

版本历史

在R2019a中引入