S P P ( 三 个 最 大 池 化 + 一 个 直 连 + 拼 接 ) SPP(三个最大池化+一个直连+拼接) SPP(三个最大池化+一个直连+拼接)
class SpatialPyramidPooling(nn.Module):
def __init__(self, pool_sizes=[5, 9, 13]):
super(SpatialPyramidPooling, self).__init__()
self.maxpools = nn.ModuleList([nn.MaxPool2d(pool_size, 1, pool_size//2) for pool_size in pool_sizes])
def forward(self, x):
features = [maxpool(x) for maxpool in self.maxpools[::-1]]
features = torch.cat(features + [x], dim=1)
return features