nn.AdaptiveAvgPool2d
参考:nn.AdaptiveAvgPool2d理解
如果是nn.AdaptiveAvgPool2d((1,1)), 可以从原来的[2, 2048, 10, 10] 转变为[2, 2048, 1, 1]
如果是nn.AdaptiveAvgPool2d(7), 则可以从[2, 2048, 10, 10] 转变为[2, 2048, 7, 7]
自适应的全局平均池化~只需要给出初始大小和输出大小,中间的步骤就由函数自己运算得到。
import torch
from torch import nn
m = nn.AdaptiveAvgPool2d((5,1))
input = torch.randn(1, 3, 8, 9)
output = m(input)
print(output)
print(output.shape)
输出
tensor([[[[ 0.4760],
[ 0.2480],
[-0.0799],
[ 0.1729],
[ 0.0449]],
[[-0.2617],
[-0.1543],
[ 0.1659],
[ 0.0289],
[-0.0876]],
[[ 0.3151],
[-0.0340],
[-0.5504],
[-0.0855],
[ 0.1978]]]])
torch.Size([1, 3, 5, 1])