def fpn_feature_extractor(fpn_level, fea_channel): layers = [ BasicConv(fea_channel, fea_channel, kernel_size=3, stride=1, padding=1) ] for _ in range(fpn_level - 1): layers.append( BasicConv(fea_channel, fea_channel, kernel_size=3, stride=2, padding=1)) return nn.ModuleList(layers)
def __init__(self, channels, fea_channel): super(CEM, self).__init__() self.cv1 = BasicConv(channels[0], fea_channel, kernel_size=1, padding=0) self.cv2 = BasicConv(channels[1], fea_channel, kernel_size=1, padding=0, scale_factor=2) self.gap = nn.AdaptiveAvgPool2d(1) self.cv3 = BasicConv(channels[1], fea_channel, kernel_size=1, padding=0)
def feature_transform_module(channels, fea_channel): layers = [] for (i, channel) in enumerate(channels): layers.append( BasicConv(channel, fea_channel, kernel_size=1, padding=0, scale_factor=2**i)) return nn.ModuleList(layers)
def fpn_convs(fpn_level, fea_channel): layers = [] for _ in range(fpn_level): layers.append( BasicConv(fea_channel, fea_channel, kernel_size=3, stride=1, padding=1)) return nn.ModuleList(layers)
def lateral_convs(fpn_level, fea_channel): layers = [] for _ in range(fpn_level): layers.append(BasicConv(fea_channel, fea_channel, kernel_size=1)) return nn.ModuleList(layers)