def __init__(self, args, conv=common.default_conv): super(DOANet, self).__init__() n_resblocks = args.n_resblocks n_feats = args.n_feats kernel_size = 3 scale = args.scale[0] self.scale = scale act = nn.ReLU(True) self.sub_mean = common.MeanShift(args.rgb_range) self.add_mean = common.MeanShift(args.rgb_range, sign=1) # define body module self.body_down = nn.Sequential( common.Shuffle_d(scale=scale), conv(args.n_colors * scale * scale, n_feats, kernel_size)) m_body = [ common.WOAModule(n_feats, kernel_size, use_wider_kernel_size=True) for i in range(n_resblocks) ] m_body.append(conv(n_feats, n_feats, kernel_size)) # define tail module body_tail = [ conv(n_feats, 288, kernel_size), nn.PixelShuffle(scale), conv(int(288 // scale // scale), 64, kernel_size), nn.ReLU(True), conv(64, args.n_colors, kernel_size) ] self.body = nn.Sequential(*m_body) self.body_tail = nn.Sequential(*body_tail) self.upsampler = common.bicubic()
def __init__(self, args, conv=common.default_conv): super(DWAN, self).__init__() n_resblocks = args.n_resblocks n_feats = args.n_feats kernel_size = 3 scale = args.scale[0] self.scale = scale act = nn.ReLU(True) self.sub_mean = common.MeanShift(args.rgb_range) self.add_mean = common.MeanShift(args.rgb_range, sign=1) # define head module m_head = [conv(args.n_colors, n_feats, kernel_size), act, conv(n_feats, n_feats, kernel_size), act, conv(n_feats, n_feats, kernel_size), act, conv(n_feats, args.n_colors, kernel_size)] # define body module self.body_down = nn.Sequential(common.Shuffle_d(scale=scale), conv(args.n_colors*scale*scale, n_feats, kernel_size)) m_body = [ common.ResBlock( conv, n_feats, kernel_size, act=act, res_scale=args.res_scale ) for _ in range(n_resblocks) ] m_body.append(conv(n_feats, n_feats, kernel_size)) # define tail module body_tail = [ nn.PixelShuffle(scale), conv(int(n_feats/scale/scale), n_feats, kernel_size), # common.CBAM(n_feats), nn.ReLU(False), conv(n_feats, n_feats, kernel_size), # common.CBAM(n_feats), nn.ReLU(False) ] m_tail = [ conv(args.n_colors*3, n_feats, kernel_size), # common.CBAM(n_feats), nn.ReLU(False), conv(n_feats, n_feats, kernel_size), # common.CBAM(n_feats), nn.ReLU(False), conv(n_feats, args.n_colors, kernel_size) ] self.head = nn.Sequential(*m_head) self.body = nn.Sequential(*m_body) self.body_tail = nn.Sequential(*body_tail) self.tail = nn.Sequential(*m_tail) # self.dynamic_kernel0 = conv(n_feats, args.n_colors, 7) # common.pixelConv(n_feats, 32, 25, 5, 3) # self.dynamic_kernel1 = conv(n_feats, args.n_colors, 5) # self.dynamic_kernel2 = conv(n_feats, args.n_colors, 3) self.dynamic_kernel0 = common.pixelConv(n_feats, 32, 25, 5, 3) self.dynamic_kernel1 = common.pixelConv(n_feats, 49, 49, 7, 3) self.dynamic_kernel2 = common.pixelConv(n_feats, 0, 9, 3, 3)
def __init__(self, args, conv=common.default_conv): super(DDet, self).__init__() n_resblocks = args.n_resblocks n_feats = args.n_feats kernel_size = 3 scale = args.scale[0] self.scale = scale act = nn.LeakyReLU(0.2, True) self.sub_mean = common.MeanShift(args.rgb_range) self.add_mean = common.MeanShift(args.rgb_range, sign=1) # define head module # m_head = [conv(args.n_colors, n_feats, 5), act, # conv(n_feats, n_feats, kernel_size), act, # conv(n_feats, n_feats, kernel_size), act, # conv(n_feats, n_feats, kernel_size), act, # conv(n_feats, n_feats, kernel_size), act, # conv(n_feats, n_feats, kernel_size), act, # conv(n_feats, n_feats, kernel_size), act, # conv(n_feats, args.n_colors, 1)] m_head = [ conv(args.n_colors, n_feats, 5), act, common.FExtractModule(n_feats, kernel_size, bias=True, use_wider_kernel_size=True), act, common.FExtractModule(n_feats, kernel_size, bias=True, use_wider_kernel_size=True), act, common.FExtractModule(n_feats, kernel_size, bias=True, use_wider_kernel_size=True), common.CBAM(n_feats), act, conv(n_feats, args.n_colors, 1) ] # define body module self.body_down = nn.Sequential( common.Shuffle_d(scale=scale), conv(args.n_colors * scale * scale, n_feats, kernel_size)) m_body = [ common.OAModule(n_feats, kernel_size, use_att=i >= n_resblocks // 4 * 3) for i in range(n_resblocks) ] m_body.append(conv(n_feats, 288, kernel_size)) # define tail module body_tail = [ nn.PixelShuffle(scale), conv(int(288 // scale // scale), n_feats, kernel_size), nn.ReLU(True), conv(n_feats, n_feats, kernel_size), nn.ReLU(True) ] m_tail = [ conv(args.n_colors * 3, n_feats, kernel_size), # common.CBAM(n_feats), nn.ReLU(True), conv(n_feats, args.n_colors, kernel_size), # common.CBAM(n_feats), # nn.ReLU(False), # conv(n_feats, args.n_colors, kernel_size) ] self.head = nn.Sequential(*m_head) self.body = nn.Sequential(*m_body) self.body_tail = nn.Sequential(*body_tail) self.tail = nn.Sequential(*m_tail) # self.dynamic_kernel0 = conv(n_feats, 64, 7) # common.pixelConv(n_feats, 32, 25, 5, 3) # self.dynamic_kernel1 = conv(n_feats, 64, 5) # self.dynamic_kernel2 = conv(n_feats, 64, 3) self.dynamic_kernel0 = common.pixelConv(n_feats, 64, 25, 5, 3) self.dynamic_kernel1 = common.pixelConv(n_feats, 64, 49, 7, 3) self.dynamic_kernel2 = common.pixelConv(n_feats, 64, 9, 3, 3) self.upsampler = common.bicubic()