AveragePool¶
AveragePool - 22¶
版本¶
域:
main起始版本:
22函数:
False支持级别:
SupportType.COMMON形状推断:
True
此版本的运算符自 版本 22 起可用。
摘要¶
AveragePool 接收输入张量 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]
每个池化窗口的输出除以元素数量(当属性 count_include_pad 为零时,不包括填充)。
属性¶
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 - INT (默认值为
'0')是否使用 ceil 或 floor (默认) 计算输出形状。
count_include_pad - INT(默认为
'0')在计算边缘值时是否包含填充像素。默认值为 0,不计算包含填充。
dilations - 整数 :
沿滤波器每个空间轴的膨胀值。如果不存在,则每个空间轴的膨胀默认为 1。
kernel_shape - INTS(必需)
沿每个轴的核大小。
pads - 整数 :
沿着每个空间轴的开始和结束填充,它可以取任何大于或等于 0 的值。该值表示添加到相应轴的开始和结束部分的像素数。
pads格式应如下 [x1_begin, x2_begin…x1_end, x2_end,…],其中 xi_begin 是在轴i的开始处添加的像素数,xi_end 是在轴i的结束处添加的像素数。此属性不能与 auto_pad 属性同时使用。如果不存在,则沿每个空间轴的开始和结束填充默认为 0。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 …] 的维度表示。
输出¶
Y (异构) - T
来自输入张量的平均或最大池化输出数据张量。维度将根据各种核、步长和填充大小而变化。使用维度的向下取整值
类型约束¶
T 在 (
tensor(bfloat16),tensor(double),tensor(float),tensor(float16))将输入和输出类型限制为浮点张量。
AveragePool - 19¶
版本¶
域:
mainsince_version:
19函数:
False支持级别:
SupportType.COMMON形状推断:
True
此版本的操作符自 版本 19 起可用。
摘要¶
AveragePool 接收输入张量 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]
每个池化窗口的输出除以元素数量(当属性 count_include_pad 为零时,不包括填充)。
属性¶
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 - INT (默认值为
'0')是否使用 ceil 或 floor (默认) 计算输出形状。
count_include_pad - INT(默认为
'0')在计算边缘值时是否包含填充像素。默认值为 0,不计算包含填充。
dilations - 整数 :
沿滤波器每个空间轴的膨胀值。如果不存在,则每个空间轴的膨胀默认为 1。
kernel_shape - INTS(必需)
沿每个轴的核大小。
pads - 整数 :
沿着每个空间轴的开始和结束填充,它可以取任何大于或等于 0 的值。该值表示添加到相应轴的开始和结束部分的像素数。
pads格式应如下 [x1_begin, x2_begin…x1_end, x2_end,…],其中 xi_begin 是在轴i的开始处添加的像素数,xi_end 是在轴i的结束处添加的像素数。此属性不能与 auto_pad 属性同时使用。如果不存在,则沿每个空间轴的开始和结束填充默认为 0。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 …] 的维度表示。
输出¶
Y (异构) - T
来自输入张量的平均或最大池化输出数据张量。维度将根据各种核、步长和填充大小而变化。使用维度的向下取整值
类型约束¶
T 在 (
tensor(double),tensor(float),tensor(float16))将输入和输出类型限制为浮点张量。
AveragePool - 11¶
版本¶
域:
main起始版本:
11函数:
False支持级别:
SupportType.COMMON形状推断:
True
此版本的运算符自 版本 11 起可用。
摘要¶
AveragePool 接收输入张量 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 是一个已弃用的属性。如果您目前正在使用它们,当 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 禁用时
VALID: output_spatial_shape[i] = floor((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] = floor(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]
每个池化窗口的输出除以元素数量(当属性 count_include_pad 为零时,不包括填充)。
属性¶
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 - INT (默认值为
'0')是否使用 ceil 或 floor (默认) 计算输出形状。
count_include_pad - INT(默认为
'0')在计算边缘值时是否包含填充像素。默认值为 0,不计算包含填充。
kernel_shape - INTS(必需)
沿每个轴的核大小。
pads - 整数 :
沿着每个空间轴的开始和结束填充,它可以取任何大于或等于 0 的值。该值表示添加到相应轴的开始和结束部分的像素数。
pads格式应如下 [x1_begin, x2_begin…x1_end, x2_end,…],其中 xi_begin 是在轴i的开始处添加的像素数,xi_end 是在轴i的结束处添加的像素数。此属性不能与 auto_pad 属性同时使用。如果不存在,则沿每个空间轴的开始和结束填充默认为 0。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 …] 的维度表示。
输出¶
Y (异构) - T
来自输入张量的平均或最大池化输出数据张量。维度将根据各种核、步长和填充大小而变化。使用维度的向下取整值
类型约束¶
T 在 (
tensor(double),tensor(float),tensor(float16))将输入和输出类型限制为浮点张量。
AveragePool - 10¶
版本¶
域:
mainsince_version:
10函数:
False支持级别:
SupportType.COMMON形状推断:
True
此版本的操作符已在 版本 10 中提供。
摘要¶
AveragePool 接收输入张量 X,并根据核大小、步长大小和填充长度对张量应用平均池化。平均池化包括根据核大小计算输入张量子集中所有值的平均值,并将数据下采样到输出张量 Y 中进行进一步处理。输出空间形状将如下所示
output_spatial_shape[i] = floor((input_spatial_shape[i] + pad_shape[i] - kernel_spatial_shape[i]) / strides_spatial_shape[i] + 1)
或
output_spatial_shape[i] = ceil((input_spatial_shape[i] + pad_shape[i] - kernel_spatial_shape[i]) / 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) / 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]
每个池化窗口的输出除以元素数量(当属性 count_include_pad 为零时,不包括填充)。
属性¶
auto_pad - 字符串 (默认为
'NOTSET')auto_pad 必须是 NOTSET、SAME_UPPER、SAME_LOWER 或 VALID。默认值为 NOTSET,这意味着使用显式填充。SAME_UPPER 或 SAME_LOWER 表示对输入进行填充,以便输出空间大小与输入匹配。如果是奇数,则对于 SAME_UPPER,额外的填充添加到末尾,对于 SAME_LOWER,则添加到开头。VALID 表示不进行填充。
ceil_mode - INT (默认值为
'0')是否使用 ceil 或 floor (默认) 计算输出形状。
count_include_pad - INT(默认为
'0')在计算边缘值时是否包含填充像素。默认值为 0,不计算包含填充。
kernel_shape - INTS(必需)
沿每个轴的核大小。
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 在 (
tensor(double),tensor(float),tensor(float16))将输入和输出类型限制为浮点张量。
AveragePool - 7¶
版本¶
域:
main起始版本:
7函数:
False支持级别:
SupportType.COMMON形状推断:
True
此版本的操作符自版本 7 起可用。
摘要¶
AveragePool 接收输入张量 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]
每个池化窗口的输出除以元素数量(当属性 count_include_pad 为零时,不包括填充)。
属性¶
auto_pad - 字符串 (默认为
'NOTSET')auto_pad 必须是 NOTSET、SAME_UPPER、SAME_LOWER 或 VALID。默认值为 NOTSET,这意味着使用显式填充。SAME_UPPER 或 SAME_LOWER 表示对输入进行填充,以便输出空间大小与输入匹配。如果是奇数,则对于 SAME_UPPER,额外的填充添加到末尾,对于 SAME_LOWER,则添加到开头。VALID 表示不进行填充。
count_include_pad - INT(默认为
'0')在计算边缘值时是否包含填充像素。默认值为 0,不计算包含填充。
kernel_shape - INTS(必需)
沿每个轴的核大小。
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 在 (
tensor(double),tensor(float),tensor(float16))将输入和输出类型限制为浮点张量。
AveragePool - 1¶
版本¶
域:
main起始版本:
1函数:
False支持级别:
SupportType.COMMON形状推断:
True
此版本的运算符自 版本 1 起可用。
摘要¶
AveragePool 接收输入张量 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 表示对输入进行填充,以便输出空间大小与输入匹配。如果是奇数,则对于 SAME_UPPER,额外的填充添加到末尾,对于 SAME_LOWER,则添加到开头。VALID 表示不进行填充。
kernel_shape - INTS(必需)
沿每个轴的核大小。
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 在 (
tensor(double),tensor(float),tensor(float16))将输入和输出类型限制为浮点张量。