Ejemplo n.º 1
0
    def __init__(self, **kwargs):
        super(Net, self).__init__()

        scale = kwargs.get("scale")
        multi_scale = kwargs.get("multi_scale")
        reduce_upsample = kwargs.get("reduce_upsample", False)
        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.relu = nn.ReLU()
        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)
        self.c2 = ops.BasicBlock(64 * 3, 64, 1)
        self.c3 = ops.BasicBlock(64 * 4, 64, 1)

        self.upsample = ops.UpsampleBlock(64,
                                          scale=scale,
                                          multi_scale=multi_scale,
                                          reduce=reduce_upsample)

        self.exit = nn.Sequential(nn.Conv2d(64, 3, 3, 1, 1))
Ejemplo n.º 2
0
    def __init__(self, **kwargs):
        super(Net, self).__init__()
        self.device = torch.device(
            "cuda" if torch.cuda.is_available() else "cpu")
        self.carnchannel = 32

        #self.conv1_e = nn.Conv2d(1, self.carnchannel//2, 3, 1, 2, bias=False).to(self.device)
        #self.conv2 = nn.Conv2d(self.carnchannel//2, self.carnchannel//2, 3, 1, 1, bias=False).to(self.device)

        #torch.nn.init.xavier_normal_(self.conv1_e.weight)
        #torch.nn.init.xavier_normal_(self.conv2.weight)

        self.entry = nn.Conv2d(3, self.carnchannel, 5, 1, 2,
                               bias=True).to(self.device)
        torch.nn.init.xavier_normal_(self.entry.weight)

        self.b1 = Block(self.carnchannel, self.carnchannel).to(self.device)
        self.b2 = Block(self.carnchannel, self.carnchannel).to(self.device)
        self.c1 = ops.BasicBlock(self.carnchannel * 2, self.carnchannel, 1, 1,
                                 0).to(self.device)
        self.c2 = ops.BasicBlock(self.carnchannel * 3, self.carnchannel, 1, 1,
                                 0).to(self.device)

        self.upsample = ops.UpsampleBlock(self.carnchannel,
                                          scale=4).to(self.device)
        self.exit = nn.Conv2d(self.carnchannel, 3, 3, 1, 1,
                              bias=True).to(self.device)
        torch.nn.init.xavier_normal_(self.exit.weight)
Ejemplo n.º 3
0
    def __init__(
        self,
        scale=4, multi_scale=True,
        num_channels=64,
        mobile=False, groups=1
    ):
        super().__init__()

        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, num_channels, 3, 1, 1)

        self.b1 = Block(num_channels, mobile, groups)
        self.b2 = Block(num_channels, mobile, groups)
        self.b3 = Block(num_channels, mobile, groups)
        self.c1 = nn.Conv2d(num_channels*2, num_channels, 1, 1, 0)
        self.c2 = nn.Conv2d(num_channels*3, num_channels, 1, 1, 0)
        self.c3 = nn.Conv2d(num_channels*4, num_channels, 1, 1, 0)

        self.upsample = ops.UpsampleBlock(
            num_channels,
            scale=scale, multi_scale=multi_scale,
            groups=groups
        )
        self.exit = nn.Conv2d(num_channels, 3, 3, 1, 1)
Ejemplo n.º 4
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)
Ejemplo n.º 5
0
    def __init__(self, args):
        super(CARN, self).__init__()

        #scale = kwargs.get("scale")
        #multi_scale = kwargs.get("multi_scale")
        #group = kwargs.get("group", 1)
        multi_scale = len(args.scale) > 1
        self.scale_idx = 0
        scale = args.scale[self.scale_idx]
        group = 1
        self.scale = args.scale
        rgb_mean = (0.4488, 0.4371, 0.4040)
        rgb_std = (1.0, 1.0, 1.0)
        self.sub_mean = common.MeanShift(args.rgb_range, rgb_mean, rgb_std)
        self.add_mean = common.MeanShift(args.rgb_range, rgb_mean, rgb_std, 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)

        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=scale,
                                          multi_scale=multi_scale,
                                          group=group)
        self.exit = nn.Conv2d(64, 3, 3, 1, 1)
Ejemplo n.º 6
0
    def __init__(self, args):
        super(Net, self).__init__()
        self.args = args
        #scale = args.scale[0]
        self.scale = args.scale[0]
        #print(self.scale)
        multi_scale = args.multi_scale
        group = args.group
        #group = kwargs.get("group", 1)
        self.num_types = args.num_types
        self.neuf = args.neuf
        self.neufed = False
        self.part = args.part

        #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)
        if self.args.use_real:
            self.input_channels = self.args.n_colors + 3
        else:
            self.input_channels = self.args.n_colors
        self.entry = nn.Conv2d(self.input_channels, self.args.n_feats, 3, 1, 1)
        if self.args.split:
            self.b1 = BlockBucket(self.args, self.args.n_feats,
                                  self.args.n_feats)
            if self.args.bottom_only:
                self.b2 = Block(self.args.n_feats, self.args.n_feats)
                self.b3 = Block(self.args.n_feats, self.args.n_feats)
            else:
                self.b2 = BlockBucket(self.args, self.args.n_feats,
                                      self.args.n_feats)
                self.b3 = BlockBucket(self.args, self.args.n_feats,
                                      self.args.n_feats)
        else:
            self.b1 = Block(self.args.n_feats, self.args.n_feats)
            self.b2 = Block(self.args.n_feats, self.args.n_feats)
            self.b3 = Block(self.args.n_feats, self.args.n_feats)
        self.c1 = ops.BasicBlock(self.args.n_feats * 2, self.args.n_feats, 1,
                                 1, 0)
        self.c2 = ops.BasicBlock(self.args.n_feats * 3, self.args.n_feats, 1,
                                 1, 0)
        self.c3 = ops.BasicBlock(self.args.n_feats * 4, self.args.n_feats, 1,
                                 1, 0)

        if self.scale != 1:
            self.upsample = ops.UpsampleBlock(self.args.n_feats,
                                              scale=self.scale,
                                              multi_scale=multi_scale,
                                              group=group)
        else:
            self.upsample = None
        #print(self.upsample)
        self.exit = nn.Conv2d(self.args.n_feats, args.n_colors, 3, 1, 1)
Ejemplo n.º 7
0
    def __init__(self, scale_factor, num_channels=1, d=56, s=12, m=4):
        super(FSRCNN_ps1, self).__init__()
        self.first_part = nn.Sequential(
            nn.Conv2d(num_channels, d, kernel_size=5, padding=5 // 2),
            nn.PReLU(d))
        self.mid_part = [nn.Conv2d(d, s, kernel_size=1), nn.PReLU(s)]
        for _ in range(m):
            self.mid_part.extend(
                [nn.Conv2d(s, s, kernel_size=3, padding=3 // 2),
                 nn.PReLU(s)])
        self.mid_part.extend([nn.Conv2d(s, d, kernel_size=1), nn.PReLU(d)])
        self.mid_part = nn.Sequential(*self.mid_part)
        self.upsample_part = ops.UpsampleBlock(d, scale=scale_factor, group=1)
        self.refine_part = nn.Conv2d(d, 1, kernel_size=3, padding=1)

        self._initialize_weights()
Ejemplo n.º 8
0
    def __init__(self):
        super(CARN, self).__init__()

        self.b1 = Block(64, 64)
        self.b2 = Block(64, 64)
        self.b3 = Block(64, 64)
        self.b4 = Block(64, 64)
        self.b5 = Block(64, 64)
        self.b6 = Block(64, 64)
        self.b7 = Block(64, 64)
        self.b8 = Block(64, 64)
        self.c1 = ops.BasicBlock(64 * 2, 64, 1)
        self.c2 = ops.BasicBlock(64 * 3, 64, 1)
        self.c3 = ops.BasicBlock(64 * 4, 64, 1)
        self.c4 = ops.BasicBlock(64 * 5, 64, 1)
        self.c5 = ops.BasicBlock(64 * 6, 64, 1)
        self.c6 = ops.BasicBlock(64 * 7, 64, 1)
        self.c7 = ops.BasicBlock(64 * 8, 64, 1)
        self.c8 = ops.BasicBlock(64 * 9, 64, 1)

        self.up = ops.UpsampleBlock(64, scale=2)
Ejemplo n.º 9
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)
Ejemplo n.º 10
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)
Ejemplo n.º 11
0
 def __init__(self, **kwargs):
     super(Net, self).__init__()
     
     scale = kwargs.get("scale") #value of scale is scale. 
     multi_scale = kwargs.get("multi_scale") # value of multi_scale is multi_scale in args.
     group = kwargs.get("group", 1) #if valule of group isn't given, group is 1.
     kernel_size = 3 #tcw 201904091123
     kernel_size1 = 1 #tcw 201904091123
     padding1 = 0 #tcw 201904091124
     padding = 1     #tcw201904091123
     features = 64   #tcw201904091124
     groups = 1       #tcw201904091124
     channels = 3
     features1 = 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)
     '''
        in_channels, out_channels, kernel_size, stride, padding,dialation, groups,
     '''
     self.conv1_1 = nn.Sequential(nn.Conv2d(in_channels=channels,out_channels=features,kernel_size=(1,3),padding=(0,1),groups=1,bias=False))
     self.conv1_2 = nn.Sequential(nn.Conv2d(in_channels=channels,out_channels=features,kernel_size=(3,1),padding=(1,0),groups=1,bias=False))
     self.conv1_3 = nn.Sequential(nn.Conv2d(in_channels=channels,out_channels=features,kernel_size=(3,3),padding=(1,1),groups=1,bias=False))
     self.conv2_1 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(1,3),padding=(0,1),groups=1,bias=False))
     self.conv2_2 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,1),padding=(1,0),groups=1,bias=False))
     self.conv2_3 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,3),padding=(1,1),groups=1,bias=False))
     self.conv3_1 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(1,3),padding=(0,1),groups=1,bias=False))
     self.conv3_2 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,1),padding=(1,0),groups=1,bias=False))
     self.conv3_3 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,3),padding=(1,1),groups=1,bias=False))
     self.conv4_1 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(1,3),padding=(0,1),groups=1,bias=False))
     self.conv4_2 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,1),padding=(1,0),groups=1,bias=False))
     self.conv4_3 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,3),padding=(1,1),groups=1,bias=False))
     self.conv5_1 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(1,3),padding=(0,1),groups=1,bias=False))
     self.conv5_2 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,1),padding=(1,0),groups=1,bias=False))
     self.conv5_3 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,3),padding=(1,1),groups=1,bias=False))
     self.conv6_1 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(1,3),padding=(0,1),groups=1,bias=False))
     self.conv6_2 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,1),padding=(1,0),groups=1,bias=False))
     self.conv6_3 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,3),padding=(1,1),groups=1,bias=False))
     self.conv7_1 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(1,3),padding=(0,1),groups=1,bias=False))
     self.conv7_2 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,1),padding=(1,0),groups=1,bias=False))
     self.conv7_3 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,3),padding=(1,1),groups=1,bias=False))
     self.conv8_1 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(1,3),padding=(0,1),groups=1,bias=False))
     self.conv8_2 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,1),padding=(1,0),groups=1,bias=False))
     self.conv8_3 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,3),padding=(1,1),groups=1,bias=False))
     self.conv9_1 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(1,3),padding=(0,1),groups=1,bias=False))
     self.conv9_2 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,1),padding=(1,0),groups=1,bias=False))
     self.conv9_3 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,3),padding=(1,1),groups=1,bias=False))
     self.conv10_1 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(1,3),padding=(0,1),groups=1,bias=False))
     self.conv10_2 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,1),padding=(1,0),groups=1,bias=False))
     self.conv10_3 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,3),padding=(1,1),groups=1,bias=False))
     self.conv11_1 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(1,3),padding=(0,1),groups=1,bias=False))
     self.conv11_2 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,1),padding=(1,0),groups=1,bias=False))
     self.conv11_3 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,3),padding=(1,1),groups=1,bias=False))
     self.conv12_1 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(1,3),padding=(0,1),groups=1,bias=False))
     self.conv12_2 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,1),padding=(1,0),groups=1,bias=False))
     self.conv12_3 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,3),padding=(1,1),groups=1,bias=False))
     self.conv13_1 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(1,3),padding=(0,1),groups=1,bias=False))
     self.conv13_2 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,1),padding=(1,0),groups=1,bias=False))
     self.conv13_3 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,3),padding=(1,1),groups=1,bias=False))
     self.conv14_1 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(1,3),padding=(0,1),groups=1,bias=False))
     self.conv14_2 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,1),padding=(1,0),groups=1,bias=False))
     self.conv14_3 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,3),padding=(1,1),groups=1,bias=False))
     self.conv15_1 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(1,3),padding=(0,1),groups=1,bias=False))
     self.conv15_2 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,1),padding=(1,0),groups=1,bias=False))
     self.conv15_3 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,3),padding=(1,1),groups=1,bias=False))
     self.conv16_1 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(1,3),padding=(0,1),groups=1,bias=False))
     self.conv16_2 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,1),padding=(1,0),groups=1,bias=False))
     self.conv16_3 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,3),padding=(1,1),groups=1,bias=False))
     self.conv17_1 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(1,3),padding=(0,1),groups=1,bias=False))
     self.conv17_2 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,1),padding=(1,0),groups=1,bias=False))
     self.conv17_3 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,3),padding=(1,1),groups=1,bias=False))
     self.conv18_1 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,3),padding=(1,1),groups=1,bias=False),nn.ReLU(inplace=True))
     self.conv18_2 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,3),padding=(1,1),groups=1,bias=False),nn.ReLU(inplace=True))
     self.conv19_1 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,3),padding=(1,1),groups=1,bias=False))
     self.conv19_2 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,3),padding=(1,1),groups=1,bias=False))
     self.conv20 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,3),padding=(1,1),groups=1,bias=False),nn.ReLU(inplace=True))
     self.conv21 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=features,kernel_size=(3,3),padding=(1,1),groups=1,bias=False),nn.ReLU(inplace=True))
     self.conv22 = nn.Sequential(nn.Conv2d(in_channels=features,out_channels=3,kernel_size=kernel_size,padding=padding,groups=groups,bias=False))
     self.ReLU=nn.ReLU(inplace=True)
     #self.BN = nn.BatchNorm2d(features)
     self.upsample = ops.UpsampleBlock(64, scale=scale, multi_scale=multi_scale,group=1)
Ejemplo n.º 12
0
    def __init__(self, args):
        super(DRLN, self).__init__()

        #n_resgroups = args.n_resgroups
        #n_resblocks = args.n_resblocks
        #n_feats = args.n_feats
        #kernel_size = 3
        #reduction = args.reduction
        #scale = args.scale[0]
        #act = nn.ReLU(True)

        self.scale = 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)  # feature extraction

        self.b1 = Block(chs, chs)  # DRLM
        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.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.upsample = ops.UpsampleBlock(chs, self.scale, multi_scale=False)
        #self.convert = ops.ConvertBlock(chs, chs, 20)
        self.tail = nn.Conv2d(chs, 3, 3, 1, 1)
Ejemplo n.º 13
0
    def __init__(self, **kwargs):
        super(Net, self).__init__()

        scale = kwargs.get("scale")  #value of scale is scale.
        multi_scale = kwargs.get(
            "multi_scale")  # value of multi_scale is multi_scale in args.
        group = kwargs.get("group",
                           1)  #if valule of group isn't given, group is 1.
        kernel_size = 3  #tcw 201904091123
        kernel_size1 = 1  #tcw 201904091123
        padding1 = 0  #tcw 201904091124
        padding = 1  #tcw201904091123
        features = 64  #tcw201904091124
        groups = 1  #tcw201904091124
        channels = 3
        features1 = 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)
        '''
           in_channels, out_channels, kernel_size, stride, padding,dialation, groups,
        '''
        self.conv1 = nn.Sequential(
            nn.Conv2d(in_channels=channels,
                      out_channels=features,
                      kernel_size=kernel_size,
                      padding=padding,
                      groups=1,
                      bias=False))
        self.conv2 = nn.Sequential(
            nn.Conv2d(in_channels=features,
                      out_channels=features,
                      kernel_size=kernel_size,
                      padding=1,
                      groups=1,
                      bias=False), nn.ReLU(inplace=True))
        self.conv3 = nn.Sequential(
            nn.Conv2d(in_channels=features,
                      out_channels=features,
                      kernel_size=kernel_size1,
                      padding=0,
                      groups=groups,
                      bias=False))
        self.conv4 = nn.Sequential(
            nn.Conv2d(in_channels=features,
                      out_channels=features,
                      kernel_size=kernel_size,
                      padding=1,
                      groups=1,
                      bias=False), nn.ReLU(inplace=True))
        self.conv5 = nn.Sequential(
            nn.Conv2d(in_channels=features,
                      out_channels=features,
                      kernel_size=kernel_size1,
                      padding=0,
                      groups=groups,
                      bias=False))
        self.conv6 = nn.Sequential(
            nn.Conv2d(in_channels=features,
                      out_channels=features,
                      kernel_size=kernel_size,
                      padding=1,
                      groups=1,
                      bias=False), nn.ReLU(inplace=True))
        self.conv7 = nn.Sequential(
            nn.Conv2d(in_channels=features,
                      out_channels=features,
                      kernel_size=kernel_size1,
                      padding=0,
                      groups=groups,
                      bias=False))
        self.conv8 = nn.Sequential(
            nn.Conv2d(in_channels=features,
                      out_channels=features,
                      kernel_size=kernel_size,
                      padding=1,
                      groups=1,
                      bias=False), nn.ReLU(inplace=True))
        self.conv9 = nn.Sequential(
            nn.Conv2d(in_channels=features,
                      out_channels=features,
                      kernel_size=kernel_size1,
                      padding=0,
                      groups=groups,
                      bias=False))
        self.conv10 = nn.Sequential(
            nn.Conv2d(in_channels=features,
                      out_channels=features,
                      kernel_size=kernel_size,
                      padding=1,
                      groups=1,
                      bias=False), nn.ReLU(inplace=True))
        self.conv11 = nn.Sequential(
            nn.Conv2d(in_channels=features,
                      out_channels=features,
                      kernel_size=kernel_size1,
                      padding=0,
                      groups=groups,
                      bias=False))
        self.conv12 = nn.Sequential(
            nn.Conv2d(in_channels=features,
                      out_channels=features,
                      kernel_size=kernel_size,
                      padding=1,
                      groups=1,
                      bias=False), nn.ReLU(inplace=True))
        self.conv13 = nn.Sequential(
            nn.Conv2d(in_channels=features,
                      out_channels=features,
                      kernel_size=kernel_size1,
                      padding=0,
                      groups=groups,
                      bias=False))
        self.conv14 = nn.Sequential(
            nn.Conv2d(in_channels=features,
                      out_channels=features,
                      kernel_size=kernel_size,
                      padding=1,
                      groups=1,
                      bias=False), nn.ReLU(inplace=True))
        self.conv15 = nn.Sequential(
            nn.Conv2d(in_channels=features,
                      out_channels=features,
                      kernel_size=kernel_size1,
                      padding=0,
                      groups=groups,
                      bias=False))
        self.conv16 = nn.Sequential(
            nn.Conv2d(in_channels=features,
                      out_channels=features,
                      kernel_size=kernel_size,
                      padding=1,
                      groups=1,
                      bias=False), nn.ReLU(inplace=True))
        self.conv17 = nn.Sequential(
            nn.Conv2d(in_channels=features,
                      out_channels=features,
                      kernel_size=kernel_size1,
                      padding=0,
                      groups=groups,
                      bias=False))
        self.conv17_1 = nn.Sequential(
            nn.Conv2d(in_channels=features,
                      out_channels=features,
                      kernel_size=kernel_size,
                      padding=1,
                      groups=1,
                      bias=False), nn.ReLU(inplace=True))
        self.conv17_2 = nn.Sequential(
            nn.Conv2d(in_channels=features,
                      out_channels=features,
                      kernel_size=kernel_size,
                      padding=1,
                      groups=1,
                      bias=False), nn.ReLU(inplace=True))
        self.conv17_3 = nn.Sequential(
            nn.Conv2d(in_channels=features,
                      out_channels=features,
                      kernel_size=kernel_size,
                      padding=1,
                      groups=1,
                      bias=False), nn.ReLU(inplace=True))
        self.conv17_4 = nn.Sequential(
            nn.Conv2d(in_channels=features,
                      out_channels=features,
                      kernel_size=kernel_size,
                      padding=1,
                      groups=1,
                      bias=False), nn.ReLU(inplace=True))
        self.conv18 = nn.Sequential(
            nn.Conv2d(in_channels=features,
                      out_channels=3,
                      kernel_size=kernel_size,
                      padding=padding,
                      groups=groups,
                      bias=False))
        '''
        self.conv18 =  nn.Conv2d(in_channels=features,out_channels=features1,kernel_size=kernel_size1,padding=padding1,groups=groups,bias=False)
        self.ReLU = nn.ReLU(inplace=True)
        '''
        self.ReLU = nn.ReLU(inplace=True)
        self.upsample = ops.UpsampleBlock(64,
                                          scale=scale,
                                          multi_scale=multi_scale,
                                          group=1)
Ejemplo n.º 14
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)