主要内容

maxpool

将数据池到最大值

描述

最大池化操作通过将输入划分为池化区域并计算每个区域的最大值来执行下采样。

maxpool函数将最大池化操作应用于dlarray数据。使用dlarray对象允许您标记维度,从而更容易处理高维数据。属性标记哪些维度对应于空间、时间、通道和批处理维度“S”“T”“C”,“B”标签,分别。对于未指定的维度和其他维度,使用“U”标签。为dlarray对象的函数在特定维度上操作时,可以通过格式化dlarray对象,或者使用DataFormat选择。

请注意

类中应用最大池化layerGraph对象或数组,使用以下图层之一:

例子

Y= maxpool (Xpoolsize对格式化的对象应用最大池化操作dlarray对象X.通过将输入划分为定义的区域,函数对输入进行采样poolsize并计算各区域数据的最大值。输出Y是格式化的dlarray相同的维度格式X

默认情况下,该函数最多在三个维度上进行池化X标签“年代”(空间)。在标记的维度上进行池化“T”(time)时,使用“T”使用“PoolFormat”选择。

对于未格式化的输入数据,使用“DataFormat”选择。

YindxinputSize= maxpool(Xpoolsize还返回每个池化区域内最大值的线性索引和输入特征映射的大小Xmaxunpool函数。

例子

Y= maxpool (X, '全球')在输入的空间维度上计算全局最大值X.此语法等价于settingpoolsize的大小“年代”的尺寸X

___= maxpool (___、“DataFormat”FMT)对未格式化的对象应用最大池化操作dlarray对象X的格式,由FMT使用任何前面的语法。输出Y是未格式化的dlarray对象,其维度顺序与X.例如,“DataFormat”、“SSCB”指定数据的2-D最大池与格式“SSCB”(空间,空间,通道,批次)。

例子

___= maxpool (___名称,值使用一个或多个名称-值对参数指定选项。例如,“PoolFormat”、“T”指定带格式的一维池化的池化区域“T”(时间)。

例子

全部折叠

创建格式化的dlarray对象,该对象包含128个28 × 28图像,有3个通道。指定格式“SSCB”(空间,空间,通道,批次)。

miniBatchSize = 128;inputSize = [28 28];numChannels = 3;X = rand(inputSize(1),inputSize(2),numChannels,miniBatchSize);dlX = dlarray(X,“SSCB”);

查看输入数据的大小和格式。

大小(dlX)
ans =1×428 28 3 128
dim (dlX)
ans = 'SSCB'

属性应用2-D最大池化和2 * 2池化窗口maxpool函数。

poolSize = [2 2];dlX = maxpool(dlX,poolSize);

查看输出的大小和格式。

大小(海底)
ans =1×427 27 3 128
dim(海底)
ans = 'SSCB'

创建格式化的dlarray对象,该对象包含128个28 × 28图像,有3个通道。指定格式“SSCB”(空间,空间,通道,批次)。

miniBatchSize = 128;inputSize = [28 28];numChannels = 3;X = rand(inputSize(1),inputSize(2),numChannels,miniBatchSize);dlX = dlarray(X,“SSCB”);

查看输入数据的大小和格式。

大小(dlX)
ans =1×428 28 3 128
dim (dlX)
ans = 'SSCB'

类应用二维全局最大池化maxpool函数,通过指定“全球”选择。

dlX = maxpool(dlX,“全球”);

查看输出的大小和格式。

大小(海底)
ans =1×41 1 3 128
dim(海底)
ans = 'SSCB'

创建格式化的dlarray对象,该对象包含128个序列,长度为100,有12个通道。指定格式“认知行为治疗”(通道,批次,时间)。

miniBatchSize = 128;sequenceLength = 100;numChannels = 12;X = rand(numChannels,miniBatchSize, sequencelth);dlX = dlarray(X,“认知行为治疗”);

查看输入数据的大小和格式。

大小(dlX)
ans =1×312 128 100
dim (dlX)
ans =“CBT”

属性应用1-D最大池化,池化区域大小为2,步幅为2maxpool函数,通过指定“PoolFormat”而且“步”选项。

poolSize = 2;dlX = maxpool(dlX,poolSize,“PoolFormat”“T”“步”2);

查看输出的大小和格式。

大小(海底)
ans =1×312 128 50
dim(海底)
ans =“CBT”

创建格式化的dlarray对象,该对象包含128个28 × 28图像,有3个通道。指定格式“SSCB”(空间,空间,通道,批次)。

miniBatchSize = 128;inputSize = [28 28];numChannels = 3;X = rand(inputSize(1),inputSize(2),numChannels,miniBatchSize);dlX = dlarray(X,“SSCB”);

查看输入数据的大小和格式。

大小(dlX)
ans =1×428 28 3 128
dim (dlX)
ans = 'SSCB'

使用跨步2在大小为2的池化区域上将数据池到最大值。

[dlY,indx,dataSize] = maxpool(dlX,2,“步”2);

查看已池数据的大小和格式。

大小(海底)
ans =1×414 14 3 128
dim(海底)
ans = 'SSCB'

查看数据大小。

dataSize
dataSize =1×428 28 3 128

属性中的索引和数据大小取消数据池maxpool操作。

dlY = maxunpool(dlY,indx,dataSize);

查看未池数据的大小和格式。

大小(海底)
ans =1×428 28 3 128
dim(海底)
ans = 'SSCB'

创建格式化的dlarray对象,该对象包含128个序列,长度为100,有12个通道。指定格式“认知行为治疗”(通道,批次,时间)。

miniBatchSize = 128;sequenceLength = 100;numChannels = 12;X = rand(numChannels,miniBatchSize, sequencelth);dlX = dlarray(X,“认知行为治疗”);

查看输入数据的大小和格式。

大小(dlX)
ans =1×312 128 100
dim (dlX)
ans =“CBT”

属性应用1-D最大池化,池化区域大小为2,步幅为2maxpool函数,通过指定“PoolFormat”而且“步”选项。

poolSize = 2;[dlY,indx,dataSize] = maxpool(dlX,poolSize,“PoolFormat”“T”“步”2);

查看输出的大小和格式。

大小(海底)
ans =1×312 128 50
dim(海底)
ans =“CBT”

属性中的索引和数据大小取消数据池maxpool操作。

dlY = maxunpool(dlY,indx,dataSize);

查看未池数据的大小和格式。

大小(海底)
ans =1×312 128 100
dim(海底)
ans =“CBT”

输入参数

全部折叠

输入数据,指定为格式化或非格式化dlarray对象。

如果X是未格式化的dlarray,则必须使用DataFormat选择。

默认情况下,该函数最多在三个维度上进行池化X标签“年代”(空间)。在标记的维度上进行池化“T”(time)时,使用“T”使用“PoolFormat”选择。

池化区域的大小,指定为数值标量或数值向量。

若要使用边缘大小相同的池化区域进行池化,请指定poolsize作为一个标量。池化区域在指定的所有维度上具有相同的大小“PoolFormat”

若要使用边缘大小不同的池化区域进行池化,请指定poolsize作为一个向量,其中poolsize(我)对应尺寸的尺寸在吗“PoolFormat”

名称-值参数

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

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

例子:“步”,2指定池化区域的步幅为2

未格式化输入数据的维度顺序,指定为字符向量或字符串标量FMT它为数据的每个维度提供了一个标签。

的格式时dlarray对象,每个字符为数据的每个维度提供一个标签,并且必须是以下之一:

  • “S”——空间

  • “C”——频道

  • “B”-批次(例如,样品和观察)

  • “T”-时间(例如序列的时间步长)

  • “U”——未指明的

您可以指定多个有标记的维度“S”“U”.你可以使用标签“C”“B”,“T”最多一次。

您必须指定DataFormat当输入数据未被格式化时dlarray

数据类型:字符|字符串

池化区域的维度顺序,指定为由逗号分隔的对组成“PoolFormat”以及为池化区域的每个维度提供标签的字符向量或字符串标量。

的默认值“PoolFormat”取决于任务:

任务 默认的
一维池 “年代”(空间)
二维池 “党卫军”(空间、空间)
3 d池 “SSS”(空间,空间,空间)

格式必须有或没有“年代”(空间)维度,或同样多的维度“年代”(空间)维度作为输入数据。

默认情况下,该函数最多在三个维度上进行池化X标签“年代”(空间)。在标记的维度上进行池化“T”(time)时,使用“T”使用“PoolFormat”选择。

例子:“PoolFormat”、“T”

遍历输入数据的步长,指定为逗号分隔的对,由“步”和一个数值标量或数值向量。如果你指定“步”作为标量,所有空间维度都使用相同的值。如果你指定“步”作为与输入数据的空间维数相同大小的向量,向量值用于相应的空间维数。

的默认值“步”1.如果“步”小于poolsize在任何维度上,池化区域都会重叠。

属性的全局池不支持金宝app“全球”选择。

例子:“步”,3

数据类型:|

应用于数据边缘的填充大小,指定为逗号分隔的对,由“填充”和以下其中之一:

  • “相同”-设置填充大小,以便在步幅为时输出大小与输入大小相同1.一般来说,每个空间维度的输出大小为装天花板(inputSize /步),在那里inputSize是沿空间维度输入的大小。

  • 数值标量——所有空间维度的两端应用相同数量的填充。

  • 数值向量——沿着每个空间维度应用不同数量的填充。使用一个大小相同的向量d,在那里d输入数据的空间维数。的向量的第Th元素指定应用于开始和结束处的填充大小空间维度。

  • 数值矩阵——每个空间维度的开始和结束都应用了不同数量的填充。使用大小为2 × -的矩阵d,在那里d输入数据的空间维数。的元素(d)指定应用于空间维度开始的填充的大小d.的元素(2 d)指定应用于空间维度末尾的填充大小d.例如,在二维空间中,格式为(前、左;下,右)

“填充”属性的全局池不支持金宝app“全球”选择。

例子:“填充”,“相同”

数据类型:|

输出参数

全部折叠

数据池,返回为dlarray使用相同的底层数据类型X

如果输入数据X是格式化的dlarray,然后Y格式与X.如果输入数据没有格式化dlarray,然后Y是未格式化的dlarray具有与输入数据相同的维度顺序。

每个池化区域中最大值的索引,返回为dlarray.中的每个值indx中对应的最大值的位置Y中值的线性索引X

如果X是格式化的dlarrayindx具有与输出相同的大小和格式Y

如果X不是格式化的dlarrayindx是未格式化的dlarray.这样的话,indx以以下维度顺序返回:all“年代”维度,然后是“C”“B”,“T”维度,然后是所有“U”维度。的大小indx匹配的大小YY排列以匹配前面指定的维度顺序。

使用indx输出maxunpool的输出maxpool

indx方法时不支持输出金宝app“全球”选择。

输入特征映射的大小,作为数字向量返回。

使用inputSize输出maxunpool的输出maxpool

inputSize方法时不支持输出金宝app“全球”选择。

更多关于

全部折叠

最大池

maxpool函数将输入数据池到最大值。有关更多信息,请参见2-D最大池化层部份maxPooling2dLayer参考页面。

扩展功能

版本历史

R2019b引入

全部展开