最大池化¶
最大池化 - 22¶
版本¶
名称: MaxPool (GitHub)
域:
main
自版本:
22
函数:
False
支持级别:
SupportType.COMMON
形状推断:
True
此版本的运算符自版本22起可用。
摘要¶
最大池化接收一个输入张量X,并根据内核大小、步长大小和填充长度对张量应用最大池化。最大池化包括根据内核大小计算输入张量子集的所有值的最大值,并将数据下采样到输出张量Y中以进行进一步处理。输出空间形状的计算方式根据是否使用显式填充(使用pads)或自动填充(使用auto_pad)而有所不同。使用显式填充(https://pytorch.ac.cn/docs/stable/generated/torch.nn.MaxPool2d.html?highlight=maxpool#torch.nn.MaxPool2d)
output_spatial_shape[i] = floor((input_spatial_shape[i] + pad_shape[i] - dilation[i] * (kernel_shape[i] - 1) - 1) / strides_spatial_shape[i] + 1)
或
output_spatial_shape[i] = ceil((input_spatial_shape[i] + pad_shape[i] - dilation[i] * (kernel_shape[i] - 1) - 1) / strides_spatial_shape[i] + 1)
如果启用了ceil_mode。pad_shape[i]
是沿轴i
的pads之和。将忽略在右侧填充区域开始的滑动窗口。
auto_pad
是一个已弃用的属性。如果您当前正在使用它们,则在启用ceil_mode时,输出空间形状将如下所示
VALID: output_spatial_shape[i] = ceil((input_spatial_shape[i] - ((kernel_spatial_shape[i] - 1) * dilations[i] + 1) + 1) / strides_spatial_shape[i])
SAME_UPPER or SAME_LOWER: output_spatial_shape[i] = ceil(input_spatial_shape[i] / strides_spatial_shape[i])
或在禁用ceil_mode时(https://tensorflowcn.cn/api_docs/python/tf/keras/layers/AveragePooling2D)
VALID: output_spatial_shape[i] = floor((input_spatial_shape[i] - ((kernel_spatial_shape[i] - 1) * dilations[i] + 1)) / strides_spatial_shape[i]) + 1
SAME_UPPER or SAME_LOWER: output_spatial_shape[i] = floor((input_spatial_shape[i] - 1) / strides_spatial_shape[i]) + 1
如果SAME_UPPER
或SAME_LOWER
,则填充形状将如下所示
pad_shape[i] = (output_spatial_shape[i] - 1) * strides_spatial_shape[i] + ((kernel_spatial_shape[i] - 1) * dilations[i] + 1) - input_spatial_shape[i]
每个池化窗口的输出是除了填充之外元素的最大值。
属性¶
auto_pad - 字符串(默认值为
'NOTSET'
)auto_pad必须为NOTSET、SAME_UPPER、SAME_LOWER或VALID之一。默认值为NOTSET,表示使用显式填充。SAME_UPPER或SAME_LOWER表示填充输入,以便对于每个轴
i
,output_shape[i] = ceil(input_shape[i] / strides[i])
。填充在两侧平均分配或几乎平均分配(取决于它是偶数还是奇数)。如果填充是奇数,则对于SAME_UPPER,额外填充添加到末尾,对于SAME_LOWER,添加到开头。ceil_mode - 整数(默认值为
'0'
)是否使用ceil或floor(默认值)来计算输出形状。
dilations - 整数列表 :
滤波器沿每个空间轴的扩张值。如果不存在,则每个空间轴的扩张默认为1。
kernel_shape - 整数列表(必需)
每个轴上内核的大小。
pads - 整数列表 :
沿每个空间轴的开头和结尾的填充,它可以取任何大于或等于0的值。该值表示添加到相应轴的开头和结尾部分的像素数。
pads
格式应如下所示:[x1_begin, x2_begin…x1_end, x2_end…],其中xi_begin是添加到轴i
开头的像素数,xi_end是添加到轴i
结尾的像素数。此属性不能与auto_pad属性同时使用。如果不存在,则每个空间轴的开头和结尾的填充默认为0。storage_order - 整数(默认值为
'0'
)张量的存储顺序。0是行主序,1是列主序。此属性仅用于将n元组索引值转换为单个整数值,以生成第二个输出。
strides - 整数列表 :
沿每个空间轴的步长。如果不存在,则每个空间轴的步长默认为1。
输入¶
X(异构) - T
来自先前运算符的输入数据张量;图像情况下的维度为(N x C x H x W),其中N是批次大小,C是通道数,H和W是数据的高度和宽度。对于非图像情况,维度为(N x C x D1 x D2 … Dn)的形式,其中N是批次大小。或者,如果维度表示有效,则操作期望输入数据张量以[DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE …]的维度表示到达。
输出¶
1到2个输出。
Y(异构) - T
来自跨输入张量的平均或最大池化的输出数据张量。维度将根据不同的内核、步长和填充大小而有所不同。使用维度的向下取整值
Indices(可选,异构) - I
来自跨输入张量的最大池化的索引张量。索引的维度与输出张量相同。索引中的值是在池化期间选择的值的索引。索引计算为扁平化的1维张量,并且索引不考虑填充。因此,索引中的值在[0, N x C x D1 x … x Dn)范围内。
类型约束¶
T in (
tensor(bfloat16)
,tensor(double)
,tensor(float)
,tensor(float16)
,tensor(int8)
,tensor(uint8)
)将输入和输出类型限制为浮点型和 8 位张量。
I in (
tensor(int64)
)将索引张量限制为 int64
MaxPool - 12¶
版本¶
名称: MaxPool (GitHub)
域:
main
since_version:
12
函数:
False
支持级别:
SupportType.COMMON
形状推断:
True
此版本的算子自版本 12起可用。
摘要¶
最大池化接收一个输入张量X,并根据内核大小、步长大小和填充长度对张量应用最大池化。最大池化包括根据内核大小计算输入张量子集的所有值的最大值,并将数据下采样到输出张量Y中以进行进一步处理。输出空间形状的计算方式根据是否使用显式填充(使用pads)或自动填充(使用auto_pad)而有所不同。使用显式填充(https://pytorch.ac.cn/docs/stable/generated/torch.nn.MaxPool2d.html?highlight=maxpool#torch.nn.MaxPool2d)
output_spatial_shape[i] = floor((input_spatial_shape[i] + pad_shape[i] - dilation[i] * (kernel_shape[i] - 1) - 1) / strides_spatial_shape[i] + 1)
或
output_spatial_shape[i] = ceil((input_spatial_shape[i] + pad_shape[i] - dilation[i] * (kernel_shape[i] - 1) - 1) / strides_spatial_shape[i] + 1)
如果启用 ceil_mode。 pad_shape[i]
是沿轴 i
的填充总和。
auto_pad
是一个已弃用的属性。如果您当前正在使用它们,则在启用ceil_mode时,输出空间形状将如下所示
VALID: output_spatial_shape[i] = ceil((input_spatial_shape[i] - ((kernel_spatial_shape[i] - 1) * dilations[i] + 1) + 1) / strides_spatial_shape[i])
SAME_UPPER or SAME_LOWER: output_spatial_shape[i] = ceil(input_spatial_shape[i] / strides_spatial_shape[i])
或在禁用ceil_mode时(https://tensorflowcn.cn/api_docs/python/tf/keras/layers/AveragePooling2D)
VALID: output_spatial_shape[i] = floor((input_spatial_shape[i] - ((kernel_spatial_shape[i] - 1) * dilations[i] + 1)) / strides_spatial_shape[i]) + 1
SAME_UPPER or SAME_LOWER: output_spatial_shape[i] = floor((input_spatial_shape[i] - 1) / strides_spatial_shape[i]) + 1
如果SAME_UPPER
或SAME_LOWER
,则填充形状将如下所示
pad_shape[i] = (output_spatial_shape[i] - 1) * strides_spatial_shape[i] + ((kernel_spatial_shape[i] - 1) * dilations[i] + 1) - input_spatial_shape[i]
每个池化窗口的输出是除了填充之外元素的最大值。
属性¶
auto_pad - 字符串(默认值为
'NOTSET'
)auto_pad必须为NOTSET、SAME_UPPER、SAME_LOWER或VALID之一。默认值为NOTSET,表示使用显式填充。SAME_UPPER或SAME_LOWER表示填充输入,以便对于每个轴
i
,output_shape[i] = ceil(input_shape[i] / strides[i])
。填充在两侧平均分配或几乎平均分配(取决于它是偶数还是奇数)。如果填充是奇数,则对于SAME_UPPER,额外填充添加到末尾,对于SAME_LOWER,添加到开头。ceil_mode - 整数(默认值为
'0'
)是否使用ceil或floor(默认值)来计算输出形状。
dilations - 整数列表 :
滤波器沿每个空间轴的扩张值。如果不存在,则每个空间轴的扩张默认为1。
kernel_shape - 整数列表(必需)
每个轴上内核的大小。
pads - 整数列表 :
沿每个空间轴的开头和结尾的填充,它可以取任何大于或等于0的值。该值表示添加到相应轴的开头和结尾部分的像素数。
pads
格式应如下所示:[x1_begin, x2_begin…x1_end, x2_end…],其中xi_begin是添加到轴i
开头的像素数,xi_end是添加到轴i
结尾的像素数。此属性不能与auto_pad属性同时使用。如果不存在,则每个空间轴的开头和结尾的填充默认为0。storage_order - 整数(默认值为
'0'
)张量的存储顺序。0是行主序,1是列主序。此属性仅用于将n元组索引值转换为单个整数值,以生成第二个输出。
strides - 整数列表 :
沿每个空间轴的步长。如果不存在,则每个空间轴的步长默认为1。
输入¶
X(异构) - T
来自先前运算符的输入数据张量;图像情况下的维度为(N x C x H x W),其中N是批次大小,C是通道数,H和W是数据的高度和宽度。对于非图像情况,维度为(N x C x D1 x D2 … Dn)的形式,其中N是批次大小。或者,如果维度表示有效,则操作期望输入数据张量以[DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE …]的维度表示到达。
输出¶
1到2个输出。
Y(异构) - T
来自跨输入张量的平均或最大池化的输出数据张量。维度将根据不同的内核、步长和填充大小而有所不同。使用维度的向下取整值
Indices(可选,异构) - I
来自跨输入张量的最大池化的索引张量。索引的维度与输出张量相同。索引中的值是在池化期间选择的值的索引。索引计算为扁平化的1维张量,并且索引不考虑填充。因此,索引中的值在[0, N x C x D1 x … x Dn)范围内。
类型约束¶
T in (
tensor(double)
,tensor(float)
,tensor(float16)
,tensor(int8)
,tensor(uint8)
)将输入和输出类型限制为浮点型和 8 位张量。
I in (
tensor(int64)
)将索引张量限制为 int64
MaxPool - 11¶
版本¶
名称: MaxPool (GitHub)
域:
main
since_version:
11
函数:
False
支持级别:
SupportType.COMMON
形状推断:
True
此版本的算子自版本 11起可用。
摘要¶
MaxPool 使用输入张量 X 并根据内核大小、步幅大小和填充长度对张量应用最大池化。最大池化包括根据内核大小计算输入张量子集的所有值的最大值,并将数据下采样到输出张量 Y 以进行进一步处理。输出空间形状将遵循以下规则
output_spatial_shape[i] = floor((input_spatial_shape[i] + pad_shape[i] - ((kernel_spatial_shape[i] - 1) * dilations[i] + 1)) / strides_spatial_shape[i] + 1)
或
output_spatial_shape[i] = ceil((input_spatial_shape[i] + pad_shape[i] - ((kernel_spatial_shape[i] - 1) * dilations[i] + 1)) / strides_spatial_shape[i] + 1)
如果启用了 ceil_mode
* pad_shape[i] is sum of pads along axis i
auto_pad
是一个已弃用的属性。如果您目前正在使用它们,则输出空间形状将遵循以下规则
VALID: output_spatial_shape[i] = ceil((input_spatial_shape[i] - ((kernel_spatial_shape[i] - 1) * dilations[i] + 1) + 1) / strides_spatial_shape[i])
SAME_UPPER or SAME_LOWER: output_spatial_shape[i] = ceil(input_spatial_shape[i] / strides_spatial_shape[i])
如果SAME_UPPER
或SAME_LOWER
,则填充形状将如下所示
pad_shape[i] = (output_spatial_shape[i] - 1) * strides_spatial_shape[i] + ((kernel_spatial_shape[i] - 1) * dilations[i] + 1) - input_spatial_shape[i]
每个池化窗口的输出是除了填充之外元素的最大值。
属性¶
auto_pad - 字符串(默认值为
'NOTSET'
)auto_pad 必须是 NOTSET、SAME_UPPER、SAME_LOWER 或 VALID 之一。其中默认值为 NOTSET,这意味着使用显式填充。SAME_UPPER 或 SAME_LOWER 表示填充输入,以便输出空间大小与 input.In 匹配,在 SAME_UPPER 情况下,奇数时在末尾添加额外的填充,在 SAME_LOWER 情况下在开头添加。VALID 表示不填充。
ceil_mode - 整数(默认值为
'0'
)是否使用ceil或floor(默认值)来计算输出形状。
dilations - 整数列表 :
滤波器沿每个空间轴的扩张值。如果不存在,则每个空间轴的扩张默认为1。
kernel_shape - 整数列表(必需)
每个轴上内核的大小。
pads - 整数列表 :
沿每个空间轴的开头和结尾的填充,它可以取任何大于或等于0的值。该值表示添加到相应轴的开头和结尾部分的像素数。
pads
格式应如下所示:[x1_begin, x2_begin…x1_end, x2_end…],其中xi_begin是添加到轴i
开头的像素数,xi_end是添加到轴i
结尾的像素数。此属性不能与auto_pad属性同时使用。如果不存在,则每个空间轴的开头和结尾的填充默认为0。storage_order - 整数(默认值为
'0'
)张量的存储顺序。0 为行优先,1 为列优先。
strides - 整数列表 :
沿每个空间轴的步长。如果不存在,则每个空间轴的步长默认为1。
输入¶
X(异构) - T
来自先前运算符的输入数据张量;图像情况下的维度为(N x C x H x W),其中N是批次大小,C是通道数,H和W是数据的高度和宽度。对于非图像情况,维度为(N x C x D1 x D2 … Dn)的形式,其中N是批次大小。或者,如果维度表示有效,则操作期望输入数据张量以[DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE …]的维度表示到达。
输出¶
1到2个输出。
Y(异构) - T
来自跨输入张量的平均或最大池化的输出数据张量。维度将根据不同的内核、步长和填充大小而有所不同。使用维度的向下取整值
Indices(可选,异构) - I
来自跨输入张量的最大池化的索引张量。索引的维度与输出张量相同。索引中的值是在池化期间选择的值的索引。索引计算为扁平化的1维张量,并且索引不考虑填充。因此,索引中的值在[0, N x C x D1 x … x Dn)范围内。
类型约束¶
T in (
tensor(double)
,tensor(float)
,tensor(float16)
)将输入和输出类型限制为浮点型张量。
I in (
tensor(int64)
)将索引张量限制为 int64
MaxPool - 10¶
版本¶
名称: MaxPool (GitHub)
域:
main
since_version:
10
函数:
False
支持级别:
SupportType.COMMON
形状推断:
True
此版本的算子自版本 10起可用。
摘要¶
MaxPool 使用输入张量 X 并根据内核大小、步幅大小和填充长度对张量应用最大池化。最大池化包括根据内核大小计算输入张量子集的所有值的最大值,并将数据下采样到输出张量 Y 以进行进一步处理。输出空间形状将遵循以下规则
output_spatial_shape[i] = floor((input_spatial_shape[i] + pad_shape[i] - ((kernel_spatial_shape[i] - 1) * dilations[i] + 1)) / strides_spatial_shape[i] + 1)
或
output_spatial_shape[i] = ceil((input_spatial_shape[i] + pad_shape[i] - ((kernel_spatial_shape[i] - 1) * dilations[i] + 1)) / strides_spatial_shape[i] + 1)
如果启用了 ceil_mode
* pad_shape[i] is sum of pads along axis i
auto_pad
是一个已弃用的属性。如果您目前正在使用它们,则输出空间形状将遵循以下规则
VALID: output_spatial_shape[i] = ceil((input_spatial_shape[i] - ((kernel_spatial_shape[i] - 1) * dilations[i] + 1) + 1) / strides_spatial_shape[i])
SAME_UPPER or SAME_LOWER: output_spatial_shape[i] = ceil(input_spatial_shape[i] / strides_spatial_shape[i])
如果SAME_UPPER
或SAME_LOWER
,则填充形状将如下所示
pad_shape[i] = (output_spatial_shape[i] - 1) * strides_spatial_shape[i] + ((kernel_spatial_shape[i] - 1) * dilations[i] + 1) - input_spatial_shape[i]
每个池化窗口的输出是除了填充之外元素的最大值。
属性¶
auto_pad - 字符串(默认值为
'NOTSET'
)auto_pad 必须是 NOTSET、SAME_UPPER、SAME_LOWER 或 VALID 之一。其中默认值为 NOTSET,这意味着使用显式填充。SAME_UPPER 或 SAME_LOWER 表示填充输入,以便输出空间大小与 input.In 匹配,在 SAME_UPPER 情况下,奇数时在末尾添加额外的填充,在 SAME_LOWER 情况下在开头添加。VALID 表示不填充。
ceil_mode - 整数(默认值为
'0'
)是否使用ceil或floor(默认值)来计算输出形状。
dilations - 整数列表 :
滤波器沿每个空间轴的膨胀值。
kernel_shape - 整数列表(必需)
每个轴上内核的大小。
pads - 整数列表 :
沿每个空间轴的开头和结尾的填充,它可以取任何大于或等于0的值。该值表示添加到相应轴的开头和结尾部分的像素数。
pads
格式应如下所示:[x1_begin, x2_begin…x1_end, x2_end…],其中xi_begin是添加到轴i
开头的像素数,xi_end是添加到轴i
结尾的像素数。此属性不能与auto_pad属性同时使用。如果不存在,则每个空间轴的开头和结尾的填充默认为0。storage_order - 整数(默认值为
'0'
)张量的存储顺序。0 为行优先,1 为列优先。
strides - 整数列表 :
沿每个空间轴的步幅。
输入¶
X(异构) - T
来自先前运算符的输入数据张量;图像情况下的维度为(N x C x H x W),其中N是批次大小,C是通道数,H和W是数据的高度和宽度。对于非图像情况,维度为(N x C x D1 x D2 … Dn)的形式,其中N是批次大小。或者,如果维度表示有效,则操作期望输入数据张量以[DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE …]的维度表示到达。
输出¶
1到2个输出。
Y(异构) - T
来自跨输入张量的平均或最大池化的输出数据张量。维度将根据不同的内核、步长和填充大小而有所不同。使用维度的向下取整值
Indices(可选,异构) - I
来自跨输入张量的最大池化的索引张量。索引的维度与输出张量相同。索引中的值是在池化期间选择的值的索引。索引计算为扁平化的1维张量,并且索引不考虑填充。因此,索引中的值在[0, N x C x D1 x … x Dn)范围内。
类型约束¶
T in (
tensor(double)
,tensor(float)
,tensor(float16)
)将输入和输出类型限制为浮点型张量。
I in (
tensor(int64)
)将索引张量限制为 int64
MaxPool - 8¶
版本¶
名称: MaxPool (GitHub)
域:
main
since_version:
8
函数:
False
支持级别:
SupportType.COMMON
形状推断:
True
此版本的算子自版本 8起可用。
摘要¶
MaxPool 使用输入张量 X 并根据内核大小、步幅大小和填充长度对张量应用最大池化。最大池化包括根据内核大小计算输入张量子集的所有值的最大值,并将数据下采样到输出张量 Y 以进行进一步处理。输出空间形状将遵循以下规则
output_spatial_shape[i] = floor((input_spatial_shape[i] + pad_shape[i] - kernel_spatial_shape[i]) / strides_spatial_shape[i] + 1)
* pad_shape[i] is sum of pads along axis i
auto_pad
是一个已弃用的属性。如果您目前正在使用它们,则输出空间形状将遵循以下规则
VALID: output_spatial_shape[i] = ceil((input_spatial_shape[i] - kernel_spatial_shape[i] + 1) / strides_spatial_shape[i])
SAME_UPPER or SAME_LOWER: output_spatial_shape[i] = ceil(input_spatial_shape[i] / strides_spatial_shape[i])
如果SAME_UPPER
或SAME_LOWER
,则填充形状将如下所示
pad_shape[i] = (output_spatial_shape[i] - 1) * strides_spatial_shape[i] + kernel_spatial_shape[i] - input_spatial_shape[i]
每个池化窗口的输出是除了填充之外元素的最大值。
属性¶
auto_pad - 字符串(默认值为
'NOTSET'
)auto_pad 必须是 NOTSET、SAME_UPPER、SAME_LOWER 或 VALID 之一。其中默认值为 NOTSET,这意味着使用显式填充。SAME_UPPER 或 SAME_LOWER 表示填充输入,以便输出空间大小与 input.In 匹配,在 SAME_UPPER 情况下,奇数时在末尾添加额外的填充,在 SAME_LOWER 情况下在开头添加。VALID 表示不填充。
kernel_shape - 整数列表(必需)
每个轴上内核的大小。
pads - 整数列表 :
沿每个空间轴的开头和结尾的填充,它可以取任何大于或等于0的值。该值表示添加到相应轴的开头和结尾部分的像素数。
pads
格式应如下所示:[x1_begin, x2_begin…x1_end, x2_end…],其中xi_begin是添加到轴i
开头的像素数,xi_end是添加到轴i
结尾的像素数。此属性不能与auto_pad属性同时使用。如果不存在,则每个空间轴的开头和结尾的填充默认为0。storage_order - 整数(默认值为
'0'
)张量的存储顺序。0 为行优先,1 为列优先。
strides - 整数列表 :
沿每个空间轴的步幅。
输入¶
X(异构) - T
来自先前运算符的输入数据张量;图像情况下的维度为(N x C x H x W),其中N是批次大小,C是通道数,H和W是数据的高度和宽度。对于非图像情况,维度为(N x C x D1 x D2 … Dn)的形式,其中N是批次大小。或者,如果维度表示有效,则操作期望输入数据张量以[DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE …]的维度表示到达。
输出¶
1到2个输出。
Y(异构) - T
来自跨输入张量的平均或最大池化的输出数据张量。维度将根据不同的内核、步长和填充大小而有所不同。使用维度的向下取整值
Indices(可选,异构) - I
来自跨输入张量的最大池化的索引张量。索引的维度与输出张量相同。索引中的值是在池化期间选择的值的索引。索引计算为扁平化的1维张量,并且索引不考虑填充。因此,索引中的值在[0, N x C x D1 x … x Dn)范围内。
类型约束¶
T in (
tensor(double)
,tensor(float)
,tensor(float16)
)将输入和输出类型限制为浮点型张量。
I in (
tensor(int64)
)将索引张量限制为 int64
MaxPool - 1¶
版本¶
名称: MaxPool (GitHub)
域:
main
since_version:
1
函数:
False
支持级别:
SupportType.COMMON
形状推断:
True
此版本的算子自版本 1起可用。
摘要¶
MaxPool 使用输入张量 X 并根据内核大小、步幅大小和填充长度对张量应用最大池化。最大池化包括根据内核大小计算输入张量子集的所有值的最大值,并将数据下采样到输出张量 Y 以进行进一步处理。输出空间形状将遵循以下规则
output_spatial_shape[i] = floor((input_spatial_shape[i] + pad_shape[i] - kernel_spatial_shape[i]) / strides_spatial_shape[i] + 1)
* pad_shape[i] is sum of pads along axis i
auto_pad
是一个已弃用的属性。如果您目前正在使用它们,则输出空间形状将遵循以下规则
VALID: output_spatial_shape[i] = ceil((input_spatial_shape[i] - kernel_spatial_shape[i] + 1) / strides_spatial_shape[i])
SAME_UPPER or SAME_LOWER: output_spatial_shape[i] = ceil(input_spatial_shape[i] / strides_spatial_shape[i])
如果SAME_UPPER
或SAME_LOWER
,则填充形状将如下所示
pad_shape[i] = (output_spatial_shape[i] - 1) * strides_spatial_shape[i] + kernel_spatial_shape[i] - input_spatial_shape[i]
每个池化窗口的输出是除了填充之外元素的最大值。
属性¶
auto_pad - 字符串(默认值为
'NOTSET'
)auto_pad 必须是 NOTSET、SAME_UPPER、SAME_LOWER 或 VALID 之一。其中默认值为 NOTSET,这意味着使用显式填充。SAME_UPPER 或 SAME_LOWER 表示填充输入,以便输出空间大小与 input.In 匹配,在 SAME_UPPER 情况下,奇数时在末尾添加额外的填充,在 SAME_LOWER 情况下在开头添加。VALID 表示不填充。
kernel_shape - 整数列表(必需)
每个轴上内核的大小。
pads - 整数列表 :
沿每个空间轴的开头和结尾的填充,它可以取任何大于或等于0的值。该值表示添加到相应轴的开头和结尾部分的像素数。
pads
格式应如下所示:[x1_begin, x2_begin…x1_end, x2_end…],其中xi_begin是添加到轴i
开头的像素数,xi_end是添加到轴i
结尾的像素数。此属性不能与auto_pad属性同时使用。如果不存在,则每个空间轴的开头和结尾的填充默认为0。strides - 整数列表 :
沿每个空间轴的步幅。
输入¶
X(异构) - T
来自先前运算符的输入数据张量;图像情况下的维度为(N x C x H x W),其中N是批次大小,C是通道数,H和W是数据的高度和宽度。对于非图像情况,维度为(N x C x D1 x D2 … Dn)的形式,其中N是批次大小。或者,如果维度表示有效,则操作期望输入数据张量以[DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE …]的维度表示到达。
输出¶
Y(异构) - T
来自跨输入张量的平均或最大池化的输出数据张量。维度将根据不同的内核、步长和填充大小而有所不同。使用维度的向下取整值
类型约束¶
T in (
tensor(double)
,tensor(float)
,tensor(float16)
)将输入和输出类型限制为浮点型张量。