maxpool
将数据池到最大值
语法
描述
最大池操作通过将输入划分到池区域并计算每个区域的最大值来执行下采样。
的maxpool
函数将最大池化操作应用到dlarray
数据。使用dlarray
对象允许对维度进行标记,从而使处理高维数据更加容易。方法标识哪些维度对应于空间、时间、通道和批处理维度“S”
,“T”
,“C”
,“B”
标签,分别。对于未指定的和其他维度,请使用“U”
标签。为dlarray
对象函数对特定维度进行操作时,可以通过格式化dlarray
对象直接调用,或使用DataFormat
选择。
将最大池操作应用于格式化的Y
= maxpool (X
,poolsize
)dlarray
对象X
.函数通过将输入分为由定义的区域来对其进行下采样poolsize
并计算每个区域的数据最大值。输出Y
是一个格式化的dlarray
具有相同的尺寸格式X
.
默认情况下,该函数最多使用三个维度X
标签“年代”
(空间)。聚集在标有的尺寸上“T”
(time),指定一个池区域“T”
维度使用“PoolFormat”
选择。
对于未格式化的输入数据,请使用“DataFormat”
选择。
例子
执行二维最大池化
创建一个格式化的dlarray
对象,该对象包含一批128张28乘28的3通道图像。指定的格式“SSCB”
(空间,空间,渠道,批处理)。
miniBatchSize = 128;inputSize = [28 28];numChannels = 3;X =兰特(inputSize (1) inputSize (2), numChannels, miniBatchSize);dlX = dlarray (X,“SSCB”);
查看输入数据的大小和格式。
大小(dlX)
ans =1×428 28 3 128
dim (dlX)
ans = ' SSCB '
方法在2乘2池窗口中应用二维最大池maxpool
函数。
poolSize = [2 2];海底= 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 =兰特(inputSize (1) inputSize (2), numChannels, miniBatchSize);dlX = dlarray (X,“SSCB”);
查看输入数据的大小和格式。
大小(dlX)
ans =1×428 28 3 128
dim (dlX)
ans = ' SSCB '
方法应用二维全局最大池maxpool
函数通过指定“全球”
选择。
海底= maxpool (dlX,“全球”);
查看输出的大小和格式。
大小(海底)
ans =1×41 1 3 128
dim(海底)
ans = ' SSCB '
执行一维最大池化
创建一个格式化的dlarray
对象,该对象包含128个长度为100、有12个通道的序列。指定的格式“认知行为治疗”
(通道、批量、时间)。
miniBatchSize = 128;sequenceLength = 100;numChannels = 12;X =兰德(numChannels miniBatchSize sequenceLength);dlX = dlarray (X,“认知行为治疗”);
查看输入数据的大小和格式。
大小(dlX)
ans =1×312 128 100
dim (dlX)
ans =“认知行为治疗”
方法应用1-D最大池化,池化区域大小为2,步幅为2maxpool
函数通过指定“PoolFormat”
而且“步”
选项。
poolSize = 2;海底= maxpool (dlX poolSize,“PoolFormat”,“T”,“步”2);
查看输出的大小和格式。
大小(海底)
ans =1×312 128 50
dim(海底)
ans =“认知行为治疗”
取消2-D最大数据池
创建一个格式化的dlarray
对象,该对象包含一批128张28乘28的3通道图像。指定的格式“SSCB”
(空间,空间,渠道,批处理)。
miniBatchSize = 128;inputSize = [28 28];numChannels = 3;X =兰特(inputSize (1) inputSize (2), numChannels, miniBatchSize);dlX = dlarray (X,“SSCB”);
查看输入数据的大小和格式。
大小(dlX)
ans =1×428 28 3 128
dim (dlX)
ans = ' SSCB '
使用跨步2在大小为2的池化区域中将数据池到最大值。
[海底,indx dataSize] = maxpool (dlX 2“步”2);
查看池数据的大小和格式。
大小(海底)
ans =1×414 14 3 128
dim(海底)
ans = ' SSCB '
查看数据大小。
dataSize
dataSize =1×428 28 3 128
使用索引和数据大小从maxpool
操作。
海底= maxunpool(海底,indx dataSize);
查看未池数据的大小和格式。
大小(海底)
ans =1×428 28 3 128
dim(海底)
ans = ' SSCB '
取消1-D最大数据池
创建一个格式化的dlarray
对象,该对象包含128个长度为100、有12个通道的序列。指定的格式“认知行为治疗”
(通道、批量、时间)。
miniBatchSize = 128;sequenceLength = 100;numChannels = 12;X =兰德(numChannels miniBatchSize sequenceLength);dlX = dlarray (X,“认知行为治疗”);
查看输入数据的大小和格式。
大小(dlX)
ans =1×312 128 100
dim (dlX)
ans =“认知行为治疗”
方法应用1-D最大池化,池化区域大小为2,步幅为2maxpool
函数通过指定“PoolFormat”
而且“步”
选项。
poolSize = 2;[海底,indx dataSize] = maxpool (dlX poolSize,“PoolFormat”,“T”,“步”2);
查看输出的大小和格式。
大小(海底)
ans =1×312 128 50
dim(海底)
ans =“认知行为治疗”
使用索引和数据大小从maxpool
操作。
海底= maxunpool(海底,indx dataSize);
查看未池数据的大小和格式。
大小(海底)
ans =1×312 128 100
dim(海底)
ans =“认知行为治疗”
输入参数
X
- - - - - -输入数据
dlarray
输入数据,指定为格式化或非格式化dlarray
对象。
如果X
是一个非格式化dlarray
,则必须使用DataFormat
选择。
默认情况下,该函数最多使用三个维度X
标签“年代”
(空间)。聚集在标有的尺寸上“T”
(time),指定一个池区域“T”
维度使用“PoolFormat”
选择。
poolsize
- - - - - -池化区域大小
正整数|正整数向量
池区域的大小,指定为数值标量或数值向量。
要使用边缘大小相同的池化区域进行池化,请指定poolsize
作为一个标量。所指定的所有维度上的池区域具有相同的大小“PoolFormat”
.
要使用具有不同大小边缘的池化区域进行池化,请指定poolsize
作为一个向量poolsize(我)
对应尺寸的尺寸在吗“PoolFormat”
.
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。
在R2021a之前,名称和值之间用逗号隔开,并括起来的名字
在报价。
例子:“步”,2
指定池区域的跨距为2
.
DataFormat
- - - - - -未格式化数据的维度顺序
特征向量|字符串标量
未格式化输入数据的维度顺序,指定为字符向量或字符串标量FMT
它为数据的每个维度提供一个标签。
的格式时dlarray
对象,每个字符为数据的每个维度提供一个标签,并且必须是以下之一:
“S”
——空间“C”
——频道“B”
-批处理(例如,样品和观察)“T”
-时间(例如,序列的时间步长)“U”
——未指明的
您可以指定多个标记的维度“S”
或“U”
.你可以使用标签“C”
,“B”
,“T”
最多一次。
您必须指定DataFormat
当输入数据没有格式化时dlarray
.
数据类型:字符
|字符串
PoolFormat
- - - - - -池化区域的尺寸顺序
特征向量|字符串标量
池区域的维度顺序,指定为逗号分隔的对,由“PoolFormat”
以及为池区域的每个维度提供标签的字符向量或字符串标量。
的默认值。“PoolFormat”
取决于任务:
任务 | 默认的 |
---|---|
一维池 | “年代” (空间) |
二维池 | “党卫军” (空间、空间) |
3 d池 | “SSS” (空间、空间、空间) |
格式必须有no“年代”
(空间)维度,或同样多“年代”
(空间)维度作为输入数据。
默认情况下,该函数最多使用三个维度X
标签“年代”
(空间)。聚集在标有的尺寸上“T”
(time),指定一个池区域“T”
维度使用“PoolFormat”
选择。
例子:“PoolFormat”、“T”
步
- - - - - -遍历输入数据的步长
1
(默认)|数字标量|数值向量
遍历输入数据的步长,指定为逗号分隔的对,由“步”
和一个数字标量或数字向量。如果您指定“步”
作为标量,对所有空间维度使用相同的值。如果您指定“步”
作为与输入数据的空间维数相同大小的向量,向量值用于对应的空间维数。
的默认值。“步”
是1
.如果“步”
小于poolsize
在任何维度中,池化区域都会重叠。
的步
参数的全局池不支持“全球”
选择。
例子:“步”,3
数据类型:单
|双
填充
- - - - - -应用于数据边缘的填充大小
0
(默认)|“相同”
|数字标量|数值向量|数字矩阵
应用于数据边缘的填充大小,指定为逗号分隔的对,由“填充”
和以下其中之一:
“相同”
-设置填充大小,这样当步幅为时,输出大小与输入大小相同1
.更一般地说,每个空间维度的输出大小为装天花板(inputSize /步)
,在那里inputSize
是输入沿空间维度的大小。数值标量——在所有空间维度的两端应用相同数量的填充。
数值向量——沿着每个空间维度应用不同数量的填充。使用一个大小的向量
d
,在那里d
是输入数据的空间维度数。的我
向量的第Th元素指定应用于开始和结束的填充大小我
空间维度。数值矩阵——对每个空间维度的开始和结束应用不同数量的填充。使用大小为2乘-的矩阵
d
,在那里d
是输入数据的空间维度数。的元素(d)
指定应用于空间维度开始的填充的大小d
.的元素(2 d)
指定应用到空间维度结尾的填充大小d
.例如,在2d中,格式为(前、左;下,右)
.
的“填充”
参数的全局池不支持“全球”
选择。
例子:“填充”,“相同”
数据类型:单
|双
输出参数
Y
——汇集数据
dlarray
池数据,返回为dlarray
具有相同的基础数据类型X
.
如果输入数据X
是一个格式化的dlarray
,然后Y
格式与X
.如果输入数据没有格式化dlarray
,然后Y
是一个非格式化dlarray
具有与输入数据相同的维度顺序。
indx
—最大值的索引
dlarray
每个池区域中最大值的索引,返回为dlarray
.每个值在indx
中对应最大值的位置Y
中的值的线性索引X
.
如果X
是一个格式化的dlarray
,indx
是否与输出的大小和格式相同Y
.
如果X
不是格式化的dlarray
,indx
是一个非格式化dlarray
.在这种情况下,indx
以以下维度顺序返回:all“年代”
维度,其次是“C”
,“B”
,“T”
维度,那么所有“U”
维度。的大小indx
的大小匹配Y
当Y
排列以匹配前面声明的维度顺序。
使用indx
输出的maxunpool
的输出maxpool
.
indx
方法时不支持输出“全球”
选择。
inputSize
-输入特征图的大小
数值向量
更多关于
最大池
的maxpool
函数将输入数据汇集到最大值。有关更多信息,请参见二维最大池化层部分的maxPooling2dLayer
参考页面。
扩展功能
GPU数组
通过使用并行计算工具箱™在图形处理单元(GPU)上运行来加速代码。
版本历史
介绍了R2019bR2020a:maxpool
索引输出参数改变形状和数据类型
的索引输出参数的数据类型和形状maxpool
功能改变。的maxpool
函数将最大值的索引输出为adlarray
具有与池数据相同的形状和格式,而不是数字向量。
的指标输出maxpool
的索引输入保持兼容maxunpool
.的maxunpool
函数接受最大值的索引作为dlarray
具有与输入数据相同的形状和格式。类的索引输出可避免错误maxpool
函数作为指标的输入maxunpool
函数。
要再现前面的行为并获得作为数字向量的索引输出,请使用以下代码:
[Y, indx, inputSize] = maxpool (Y, poolsize);indx = extractdata (indx);indx =重塑(indx [], 1);
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。