Example #1
0
    def __init__(self,
                 in_channels,
                 out_channels,
                 num_features,
                 upscale_factor,
                 res_scale=1,
                 conv=blocks.default_conv):
        super(GraphNet, self).__init__()

        rgb_mean = (0.4488, 0.4371, 0.4040)
        rgb_std = (1.0, 1.0, 1.0)

        ##define network head
        net_head = [conv(in_channels, num_features, 3)]

        ##define network body
        net_body = nn.ModuleList()
        for i in range(20):
            net_body.append(Block(conv, num_features, num_features))

        ##deine network tail
        net_tail = [
            conv(num_features, num_features, 3),
            blocks.Upsampler(conv, upscale_factor, num_features),
            conv(num_features, out_channels=3, kernel_size=3)
        ]

        self.sub_mean = blocks.MeanShift(rgb_mean, rgb_std, sign=-1)
        self.head = nn.Sequential(*net_head)
        self.body = nn.Sequential(*net_body)
        self.concat = conv(num_features * 21, num_features, 1)
        self.tail = nn.Sequential(*net_tail)

        self.add_mean = blocks.MeanShift(rgb_mean, rgb_std, 1)
Example #2
0
    def __init__(self,
                 in_channels,
                 out_channels,
                 num_features,
                 upscale_factor,
                 conv=blocks.default_conv):
        super(GCNSR, self).__init__()
        rgb_mean = (0.4488, 0.4371, 0.4040)
        rgb_std = (1.0, 1.0, 1.0)

        ## define network head
        self.head = conv(in_channels, num_features, 3)

        ## define network body
        net_body = nn.ModuleList()
        for _ in range(20):
            net_body.append(Backbone(conv, num_features))
        self.body = nn.Sequential(*net_body)

        ## define network tail
        net_tail = [
            conv(num_features, num_features, 3),
            blocks.Upsampler(conv, upscale_factor, num_features),
            conv(num_features, out_channels=3, kernel_size=3)
        ]
        self.tail = nn.Sequential(*net_tail)

        self.sub_mean = blocks.MeanShift(rgb_mean, rgb_std, sign=-1)
        self.fusion = conv(num_features * 21, num_features, 1)
        self.add_mean = blocks.MeanShift(rgb_mean, rgb_std, 1)
        self.adj = Cal_adj_matrix()
Example #3
0
    def __init__(self,
                 in_channels,
                 out_channels,
                 num_features,
                 upscale_factor,
                 conv=blocks.default_conv):
        super(GroupNet, self).__init__()

        rgb_mean = (0.4488, 0.4371, 0.4040)
        rgb_std = (1.0, 1.0, 1.0)
        n_resblocks = 8
        self.sub_mean = blocks.MeanShift(rgb_mean, rgb_std, sign=-1)
        self.add_mean = blocks.MeanShift(rgb_mean, rgb_std, sign=1)

        #define network head
        self.head = conv(in_channels, num_features, 3)

        #define network body
        self.block1 = ResBlock(conv, num_features, num_features)
        self.block2 = ResBlock(conv, num_features, num_features)
        self.node1 = conv(num_features * 2, num_features, 1)

        self.block3 = ResBlock(conv, num_features, num_features)
        self.block4 = ResBlock(conv, num_features, num_features)
        self.node2 = conv(num_features * 2, num_features, 1)

        self.block5 = ResBlock(conv, num_features, num_features)
        self.block6 = ResBlock(conv, num_features, num_features)
        self.node3 = conv(num_features * 4, num_features * 2, 1)

        self.block7 = ResBlock(conv, num_features * 2, num_features * 2)
        self.block8 = ResBlock(conv, num_features * 2, num_features * 2)
        self.node4 = conv(num_features * 4, num_features * 2, 1)

        self.block9 = ResBlock(conv, num_features * 2, num_features * 2)
        self.block10 = ResBlock(conv, num_features * 2, num_features * 2)
        self.node5 = conv(num_features * 2 * 3, num_features * 3, 1)

        self.block11 = ResBlock(conv, num_features * 3, num_features * 3)
        self.block12 = ResBlock(conv, num_features * 3, num_features * 3)
        self.node6 = conv(num_features * 2 * 3, num_features * 3, 1)

        self.block13 = ResBlock(conv, num_features * 3, num_features * 3)
        self.block14 = ResBlock(conv, num_features * 3, num_features * 3)
        self.node7 = conv(num_features * 15, 480, 1)

        #define network tail
        network_tail_1 = [
            conv(480, num_features, 3),
            blocks.Upsampler(conv, upscale_factor, num_features),
            conv(num_features, out_channels, 3)
        ]

        network_tail_2 = [
            blocks.Upsampler(conv, upscale_factor, num_features),
            conv(num_features, out_channels, 3)
        ]

        self.tail_1 = nn.Sequential(*network_tail_1)
        self.tail_2 = nn.Sequential(*network_tail_2)
Example #4
0
    def __init__(
        self, in_channels, out_channels, n_feats, upscale_factor, conv=blocks.default_conv):
        super(GroupNet, self).__init__()
        # RGB mean for DIV2K
        rgb_mean = (0.4488, 0.4371, 0.4040)
        rgb_std = (1.0, 1.0, 1.0)
        self.sub_mean = blocks.MeanShift(rgb_mean, rgb_std, sign=-1)
        self.add_mean = blocks.MeanShift(rgb_mean, rgb_std, sign=1)
        
        # define head module
        self.head = conv(in_channels, n_feats, kernel_size=3)

        # define body module                 

        self.unit1 = BasicUnit(conv,n_feats)        
        self.unit2 = BasicUnit(conv,n_feats)        
        self.node1 = conv(n_feats*2,n_feats,1)
        
        self.unit3 = BasicUnit(conv,n_feats)        
        self.unit4 = BasicUnit(conv,n_feats)        
        self.node2 = conv(n_feats*2,n_feats, 1)
        
        self.unit5 = BasicUnit(conv,n_feats)
        self.unit6 = BasicUnit(conv,n_feats)        
        self.node3 = conv(n_feats*4,n_feats*2, 1)
       
        self.unit7 = BasicUnit(conv,n_feats*2)        
        self.unit8 = BasicUnit(conv,n_feats*2)        
        self.node4 = conv(n_feats*4,n_feats*2, 1)
        
        self.unit9 = BasicUnit(conv,n_feats*2)        
        self.unit10 = BasicUnit(conv,n_feats*2)        
        self.node5 = conv(n_feats*2*3,n_feats*3,1)
        
        self.unit11 = BasicUnit(conv,n_feats*3)        
        self.unit12 = BasicUnit(conv,n_feats*3)        
        self.node6 = conv(n_feats*6,n_feats*3,1)
        
        self.unit13 = BasicUnit(conv,n_feats*3)        
        self.unit14 = BasicUnit(conv,n_feats*3)        
        self.node7 = conv(n_feats*15,480, 1)
        
        # define tail module
        modules_tail_1 = [
            conv(480, n_feats, kernel_size=3),
            common.Upsampler(conv, upscale_factor, n_feats, act=False),
            conv(n_feats, out_channels, kernel_size=3)]
            
        modules_tail_2 = [
            common.Upsampler(conv, upscale_factor, n_feats, act=False),
            conv(n_feats, out_channels, kernel_size=3)] 
            
        self.tail_1 =nn.Sequential(*modules_tail_1) 
        self.tail_2 =nn.Sequential(*modules_tail_2)  
Example #5
0
    def __init__(self,
                 num_features,
                 n_resgroups,
                 n_resblocks,
                 kernel_size,
                 reduction,
                 upscale_factor,
                 norm_type=False,
                 act_type='relu',
                 conv=blocks.default_conv):
        super(RCAN, self).__init__()

        rgb_mean = (0.4488, 0.4371, 0.4040)
        rgb_std = (1.0, 1.0, 1.0)
        self.sub_mean = blocks.MeanShift(rgb_mean, rgb_std)

        modules_head = [
            conv(in_channels=3,
                 out_channels=num_features,
                 kernel_size=kernel_size)
        ]

        modules_body = [
            ResidualGroup(conv,
                          num_features,
                          kernel_size,
                          reduction,
                          res_scale=1,
                          n_resblocks=20,
                          act_type='relu') for i in range(n_resgroups)
        ]

        modules_body.append(conv(num_features, num_features, kernel_size))
        modules_tail = [
            blocks.Upsampler(conv,
                             upscale_factor,
                             num_features,
                             act_type=False),
            conv(num_features, out_channels=3, kernel_size=kernel_size)
        ]

        self.head = nn.Sequential(*modules_head)
        self.body = nn.Sequential(*modules_body)
        self.tail = nn.Sequential(*modules_tail)
        self.add_mean = blocks.MeanShift(rgb_mean, rgb_std, sign=1)