本文主要是介绍SPP改进(多窗口池化),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
论文创新点汇总:人工智能论文通用创新点(持续更新中...)-CSDN博客
原来的模型
15年提出
本质:
多个不同大小的池化窗口进行池化
池化窗口越大得到的特征越少
之后再将不同池化窗口得到的特征拼接起来
现在的改进
实现代码
class SPPCSPC(nn.Module):# CSP https://github.com/WongKinYiu/CrossStagePartialNetworksdef __init__(self, c1, c2, n=1, shortcut=False, g=1, e=0.5, k=(5, 9, 13)):super(SPPCSPC, self).__init__()c_ = int(2 * c2 * e) # hidden channelsself.cv1 = Conv(c1, c_, 1, 1)self.cv2 = Conv(c1, c_, 1, 1)self.cv3 = Conv(c_, c_, 3, 1)self.cv4 = Conv(c_, c_, 1, 1)self.m = nn.ModuleList([nn.MaxPool2d(kernel_size=x, stride=1, padding=x // 2) for x in k])self.cv5 = Conv(4 * c_, c_, 1, 1)self.cv6 = Conv(c_, c_, 3, 1)self.cv7 = Conv(2 * c_, c2, 1, 1)def forward(self, x):x1 = self.cv4(self.cv3(self.cv1(x)))y1 = self.cv6(self.cv5(torch.cat([x1] + [m(x1) for m in self.m], 1)))y2 = self.cv2(x)return self.cv7(torch.cat((y1, y2), dim=1))
这篇关于SPP改进(多窗口池化)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!