Ceil_mode=True 更改填充。
在 ceil 模式的情况下,会在右侧和下方添加额外的列和行。(不是顶部也不是左侧)。它不需要是一个额外的列。这也取决于步幅值。我刚刚编写了小代码片段,您可以在其中检查填充值如何在任一模式下汇集。
在我找到上面引用的帖子之前,我对你的问题进行了同样的实验,似乎在池操作期间没有使用零填充,在我下面的示例中,零将是要采用的最大元素,但似乎并非如此。
test_tensor = torch.FloatTensor(2,7,7).random_(-10,-5)
print(test_tensor)
max_pool = nn.MaxPool2d(kernel_size=2, stride=2, ceil_mode=True)
print(max_pool(test_tensor))
max_pool = nn.MaxPool2d(kernel_size=2, stride=2, ceil_mode=False)
print(max_pool(test_tensor))
随机样本张量:
tensor([[[ -6., -9., -7., -10., -6., -8., -6.],
[-10., -10., -10., -6., -10., -9., -6.],
[-10., -7., -7., -8., -10., -10., -9.],
[ -8., -10., -10., -9., -9., -10., -9.],
[ -8., -6., -8., -6., -7., -7., -9.],
[-10., -8., -7., -10., -9., -6., -8.],
[-10., -6., -9., -10., -9., -9., -10.]],
[[-10., -8., -6., -10., -9., -6., -7.],
[ -7., -7., -10., -10., -6., -9., -7.],
[ -6., -10., -7., -8., -8., -10., -9.],
[ -8., -8., -6., -7., -6., -8., -6.],
[ -9., -8., -7., -10., -8., -8., -7.],
[-10., -10., -6., -9., -8., -8., -8.],
[-10., -6., -9., -9., -7., -9., -10.]]])
ceil_mode=真
tensor([[[ -6., -6., -6., -6.],
[ -7., -7., -9., -9.],
[ -6., -6., -6., -8.],
[ -6., -9., -9., -10.]],
[[ -7., -6., -6., -7.],
[ -6., -6., -6., -6.],
[ -8., -6., -8., -7.],
[ -6., -9., -7., -10.]]])
ceil_mode=假
tensor([[[-6., -6., -6.],
[-7., -7., -9.],
[-6., -6., -6.]],
[[-7., -6., -6.],
[-6., -6., -6.],
[-8., -6., -8.]]])