目录
1.slim.max_pool2d()函数
def max_pool2d(inputs,
kernel_size,
stride=2,
padding='VALID',
data_format=DATA_FORMAT_NHWC,
outputs_collections=None,
scope=None):
if data_format not in (DATA_FORMAT_NCHW, DATA_FORMAT_NHWC):
raise ValueError('data_format has to be either NCHW or NHWC.')
with ops.name_scope(scope, 'MaxPool2D', [inputs]) as sc:
inputs = ops.convert_to_tensor(inputs)
df = ('channels_first'
if data_format and data_format.startswith('NC') else 'channels_last')
layer = pooling_layers.MaxPooling2D(
pool_size=kernel_size,
strides=stride,
padding=padding,
data_format=df,
_scope=sc)
outputs = layer.apply(inputs)
return utils.collect_named_outputs(outputs_collections, sc, outputs)
1.1 参数:
1.1.1 inputs:
一个形状’ [batch_size, height, width, channels] ‘的4-D张量,如果’ data_format ‘是’ NHWC ‘,那么’ [batch_size, channels, height, width] ‘如果’ data_format ‘是’ NCHW '。
1.1.2 kernel_size:
计算op的池内核的长度2:[kernel_height, kernel_width]的列表。如果两个值相同,则可以是int。
1.1.3 stride:
一个长度为2的列表:[stride_height, stride_width]。如果两个步骤相同,则可以是int。注意,目前这两个步骤必须具有相同的值。
1.1.4 padding:
填充方法,要么“有效”,要么“相同”。
1.1.5 data_forma:
一个字符串。支持’ NHWC ‘(默认值)和’ NCHW '。
1.1.6 outputs_collections:
将输出添加到其中的集合。
1.1.7 scope:
name_scope的可选作用域。
1.2 返回值:
表示池操作结果的“张量”。
2.torch.nn.MaxPool2d()函数
class MaxPool2d(_MaxPoolNd):
kernel_size: _size_2_t
stride: _size_2_t
padding: _size_2_t
dilation: _size_2_t
def forward(self, input: Tensor) -> Tensor:
return F.max_pool2d(input, self.kernel_size, self.stride,
self.padding, self.dilation, self.ceil_mode,
self.return_indices)
2.1 参数:
2.1.1 kernel_size :
表示做最大池化的窗口大小,可以是单个值,也可以是tuple元组
注意这里的 kernel_size 跟卷积核不是一个东西。 kernel_size 可以看做是一个滑动窗口,这个窗口的大小由自己指定,如果输入是单个值,例如 3 ,那么窗口的大小就是 3 × 3,还可以输入元组,例如 (3, 2) ,那么窗口大小就是 3 × 2 。
最大池化的方法就是取这个窗口覆盖元素中的最大值。
2.1.2 stride :
步长,可以是单个值,也可以是tuple元组
上一个参数我们确定了滑动窗口的大小,现在我们来确定这个窗口如何进行滑动。如果不指定这个参数,那么默认步长跟最大池化窗口大小一致。如果指定了参数,那么将按照我们指定的参数进行滑动。例如 stride=(2,3) , 那么窗口将每次向右滑动三个元素位置,或者向下滑动两个元素位置。
2.1.3 padding :
填充,可以是单个值,也可以是tuple元组
这参数控制如何进行填充,填充值默认为0。如果是单个值,例如 1,那么将在周围填充一圈0。
还可以用元组指定如何填充,例如
padding=(2, 1)
表示在上下两个方向个填充两行0,在左右两个方向各填充一列0。
2.1.4 dilation :
控制窗口中元素步幅
2.1.5 return_indices :
布尔类型,返回最大值位置索引
这是个布尔类型值,表示返回值中是否包含最大值位置的索引。注意这个最大值指的是在所有窗口中产生的最大值,如果窗口产生的最大值总共有5个,就会有5个返回值。
2.1.6 ceil_mode :
布尔类型,为True,用向上取整的方法,计算输出形状;默认是向下取整。
这个也是布尔类型值,它决定的是在计算输出结果形状的时候,是使用向上取整还是向下取整。