示例#1
0
    def __init__(self, **kwargs):
        super(Net, self).__init__()
        
        #scale = kwargs.get("scale")
        scale = 2
        multi_scale = kwargs.get("multi_scale")
        group = kwargs.get("group", 1)

        self.sub_mean = ops.MeanShift((0.4488, 0.4371, 0.4040), sub=True)
        self.add_mean = ops.MeanShift((0.4488, 0.4371, 0.4040), sub=False)

        #@#@ Protect this convolution operation with ABFT
        self.entry = nn.Conv2d(3, 64, 3, 1, 1)

        self.b1 = Block(64, 64, group=group)
        self.b2 = Block(64, 64, group=group)
        self.b3 = Block(64, 64, group=group)
        self.c1 = ops.BasicBlock(64*2, 64, 1, 1, 0)
        self.c2 = ops.BasicBlock(64*3, 64, 1, 1, 0)
        self.c3 = ops.BasicBlock(64*4, 64, 1, 1, 0)
        
        self.upsample = ops.UpsampleBlock(64, scale=scale, 
                                          multi_scale=multi_scale,
                                          group=group)

        #@#@ Protect this convolution operation with ABFT
        self.exit = nn.Conv2d(64, 3, 3, 1, 1)
示例#2
0
    def __init__(self, opt):
        super().__init__()

        self.sub_mean = ops.MeanShift(255)
        self.add_mean = ops.MeanShift(255, sign=1)

        head = [
            ops.DownBlock(opt.scale),
            nn.Conv2d(3 * opt.scale**2, opt.num_channels, 3, 1, 1)
        ]

        body = list()
        for _ in range(opt.num_groups):
            body += [
                Group(opt.num_channels, opt.num_blocks, opt.reduction,
                      opt.res_scale)
            ]
        body += [nn.Conv2d(opt.num_channels, opt.num_channels, 3, 1, 1)]

        tail = [
            ops.Upsampler(opt.num_channels, opt.scale),
            nn.Conv2d(opt.num_channels, 3, 3, 1, 1)
        ]

        self.head = nn.Sequential(*head)
        self.body = nn.Sequential(*body)
        self.tail = nn.Sequential(*tail)

        self.opt = opt
示例#3
0
    def __init__(self, opt):
        super().__init__()

        self.sub_mean = ops.MeanShift(255)
        self.add_mean = ops.MeanShift(255, sign=1)

        head = [
            ops.DownBlock(opt.scale),
            nn.Conv2d(3 * opt.scale**2, opt.num_channels, 3, 1, 1)
        ]

        # define body module
        for ng in range(opt.num_groups):
            setattr(
                self, "c{}".format(ng + 1),
                nn.Conv2d(opt.num_channels * (ng + 2), opt.num_channels, 1, 1,
                          0))
            setattr(self, "b{}".format(ng + 1),
                    Group(opt.num_channels, opt.num_blocks))

        tail = [
            ops.Upsampler(opt.num_channels, opt.scale),
            nn.Conv2d(opt.num_channels, 3, 3, 1, 1)
        ]

        self.head = nn.Sequential(*head)
        self.tail = nn.Sequential(*tail)

        self.opt = opt
示例#4
0
    def __init__(self, conv=common.default_conv):
        super(EDSR, self).__init__()

        n_resblocks = 32
        n_feats = 64
        kernel_size = 3
        scale = 2
        act = 'relu'
        #self.url = url['r{}f{}x{}'.format(n_resblocks, n_feats, scale)]

        # define head module
        m_head = [conv(3, n_feats, kernel_size)]

        # define body module
        m_body = [
            common.ResBlock(n_feats,
                            kernel_size,
                            act_type=act,
                            bias=True,
                            res_scale=1) for _ in range(n_resblocks)
        ]
        m_body.append(conv(n_feats, n_feats, kernel_size))

        # define tail module
        m_tail = [
            common.Upsampler(scale, n_feats, norm_type=False, act_type=False),
            conv(n_feats, 3, kernel_size)
        ]

        self.sub_mean = ops.MeanShift((0.4488, 0.4371, 0.4040), sub=True)
        self.add_mean = ops.MeanShift((0.4488, 0.4371, 0.4040), sub=False)

        self.head = nn.Sequential(*m_head)
        self.body = nn.Sequential(*m_body)
        self.tail = nn.Sequential(*m_tail)
示例#5
0
    def __init__(self):
        super(carn, self).__init__()

        group = 2

        self.sub_mean = ops.MeanShift((0.4488, 0.4371, 0.4040), sub=True)
        self.add_mean = ops.MeanShift((0.4488, 0.4371, 0.4040), sub=False)

        self.entry = nn.Conv2d(3, 64, 3, 1, 1)

        self.b1 = Block(64, 64)
        self.b2 = Block(64, 64)
        self.b3 = Block(64, 64)
        self.c1 = ops.BasicBlock(64 * 2, 64, 1, 1, 0)
        self.c2 = ops.BasicBlock(64 * 3, 64, 1, 1, 0)
        self.c3 = ops.BasicBlock(64 * 4, 64, 1, 1, 0)

        self.upsample = ops.UpsampleBlock(64,
                                          scale=2,
                                          multi_scale=False,
                                          group=group)
        self.exit = nn.Conv2d(64, 3, 3, 1, 1)
示例#6
0
    def __init__(self, **kwargs):
        super(Net, self).__init__()

        self.scale = kwargs.get("scale")
        self.multi_scale = kwargs.get("multi_scale")
        self.group = kwargs.get("group", 1)

        self.sub_mean = ops.MeanShift((0.4488, 0.4371, 0.4040), sub=True)
        self.add_mean = ops.MeanShift((0.4488, 0.4371, 0.4040), sub=False)

        self.entry = nn.Conv2d(3, 64, 3, 1, 1)

        modules_body = [
            SSPBlock(channels=64, split=4, groups=1, bias=True, add=True) \
            for _ in range(16) ]
        modules_body.append(nn.Conv2d(64, 64, 3, 1, 1))
        self.body = nn.Sequential(*modules_body)

        self.upsample = ops.UpsampleBlock(64,
                                          scale=self.scale,
                                          multi_scale=self.multi_scale,
                                          group=self.group)
        self.exit = nn.Conv2d(64, 3, 3, 1, 1)
示例#7
0
    def __init__(self, args):
        super(DRLN, self).__init__()
        
        self.stop_block = 1
        self.scale = 3#args.scale[0]
        chs=64

        self.sub_mean = ops.MeanShift((0.4488, 0.4371, 0.4040), sub=True)
        self.add_mean = ops.MeanShift((0.4488, 0.4371, 0.4040), sub=False)
        
        self.head = nn.Conv2d(3, chs, 3, 1, 1)

        self.b1 = Block(chs, chs)
        self.b2 = Block(chs, chs)
        self.b3 = Block(chs, chs)
        self.b4 = Block(chs, chs)
        self.b5 = Block(chs, chs)
        self.b6 = Block(chs, chs)
        self.b7 = Block(chs, chs)
        self.b8 = Block(chs, chs)
        self.b9 = Block(chs, chs)
        self.b10 = Block(chs, chs)
        self.b11 = Block(chs, chs)
        self.b12 = Block(chs, chs)
        self.b13 = Block(chs, chs)
        self.b14 = Block(chs, chs)
        self.b15 = Block(chs, chs)
        self.b16 = Block(chs, chs)
        self.b17 = Block(chs, chs)
        self.b18 = Block(chs, chs)
        self.b19 = Block(chs, chs)
        self.b20 = Block(chs, chs)
        
        self.b21 = Block(chs, chs)
        self.b22 = Block(chs, chs)
        self.b23 = Block(chs, chs)
        self.b24 = Block(chs, chs)

        self.c1 = ops.BasicBlock(chs*2, chs, 3, 1, 1)
        self.c2 = ops.BasicBlock(chs*3, chs, 3, 1, 1)
        self.c3 = ops.BasicBlock(chs*4, chs, 3, 1, 1)
        self.c4 = ops.BasicBlock(chs*2, chs, 3, 1, 1)
        self.c5 = ops.BasicBlock(chs*3, chs, 3, 1, 1)
        self.c6 = ops.BasicBlock(chs*4, chs, 3, 1, 1)
        self.c7 = ops.BasicBlock(chs*2, chs, 3, 1, 1)
        self.c8 = ops.BasicBlock(chs*3, chs, 3, 1, 1)
        self.c9 = ops.BasicBlock(chs*4, chs, 3, 1, 1)
        self.c10 = ops.BasicBlock(chs*2, chs, 3, 1, 1)
        self.c11 = ops.BasicBlock(chs*3, chs, 3, 1, 1)
        self.c12 = ops.BasicBlock(chs*4, chs, 3, 1, 1)
        self.c13 = ops.BasicBlock(chs*2, chs, 3, 1, 1)
        self.c14 = ops.BasicBlock(chs*3, chs, 3, 1, 1)
        self.c15 = ops.BasicBlock(chs*4, chs, 3, 1, 1)
        self.c16 = ops.BasicBlock(chs*5, chs, 3, 1, 1)
        self.c17 = ops.BasicBlock(chs*2, chs, 3, 1, 1)
        self.c18 = ops.BasicBlock(chs*3, chs, 3, 1, 1)
        self.c19 = ops.BasicBlock(chs*4, chs, 3, 1, 1)
        self.c20 = ops.BasicBlock(chs*5, chs, 3, 1, 1)
        
        self.c21 = ops.BasicBlock(chs*2, chs, 3, 1, 1)
        self.c22 = ops.BasicBlock(chs*3, chs, 3, 1, 1)
        self.c23 = ops.BasicBlock(chs*4, chs, 3, 1, 1)
        self.c24 = ops.BasicBlock(chs*5, chs, 3, 1, 1)

        self.upsample = ops.UpsampleBlock(chs, self.scale , multi_scale=False)
    
        self.tail = nn.Conv2d(chs, 3, 3, 1, 1)