Пример #1
0
    def __init__(self, args, conv=common.default_conv):
        super(BSR, self).__init__()
        n_resblocks = args.n_resblocks
        n_feats = args.n_feats
        kernel_size = 3  # 卷积核大小
        self.scale_idx = 0

        act = nn.ReLU(True)  # 激活函数

        self.DWT = common.DWT()  # 二维离散小波
        self.IWT = common.IWT()  # 逆向的二维离散小波

        n = 3
        # downsample的第一层,维度变化4->16
        m_head = [common.BBlock(conv, 4, 160, 3, act=act)]
        d_l1 = []
        for _ in range(n):
            d_l1.append(common.BBlock(conv, 160, 160, 3, act=act))

        # downsample的第二层,维度变化640->256(默认的feature map == 64)
        d_l2 = [common.BBlock(conv, 640, n_feats * 4, 3, act=act)]
        for _ in range(n):
            d_l2.append(
                common.BBlock(conv, n_feats * 4, n_feats * 4, 3, act=act))

        # downsample的第三层,并与upsample进行连接,也是upsample的第三层
        # 维度变化1024->256,256->1024
        pro_l3 = [common.BBlock(conv, n_feats * 16, n_feats * 4, 3, act=act)]
        for _ in range(n * 2):
            pro_l3.append(
                common.BBlock(conv, n_feats * 4, n_feats * 4, 3, act=act))
        pro_l3.append(
            common.BBlock(conv, n_feats * 4, n_feats * 16, 3, act=act))

        # upsample的第二层,维度变化256->640
        i_l2 = []
        for _ in range(n):
            i_l2.append(
                common.BBlock(conv, n_feats * 4, n_feats * 4, 3, act=act))
        i_l2.append(common.BBlock(conv, n_feats * 4, 640, 3, act=act))

        # upsample的第一层,维度变化160->4
        i_l1 = []
        for _ in range(n):
            i_l1.append((common.BBlock(conv, 160, 160, 3, act=act)))
        m_tail = [conv(160, 4, 3)]

        # downsample的第一层
        self.head = nn.Sequential(*m_head)
        self.d_l1 = nn.Sequential(*d_l1)
        # downsample的第二层
        self.d_l2 = nn.Sequential(*d_l2)
        # 第三层连接层
        self.pro_l3 = nn.Sequential(*pro_l3)
        # upsample的第二层
        self.i_l2 = nn.Sequential(*i_l2)
        # upsample的第一层
        self.i_l1 = nn.Sequential(*i_l1)
        self.tail = nn.Sequential(*m_tail)
Пример #2
0
    def __init__(self):
        super(MWRN_lv2_head, self).__init__()
        self.color_channel = 3

        self.conv2_head_1 = common.BBlock(common.default_conv0,16*self.color_channel,256,3,bn=True)
        self.conv2_head_2 = common.BBlock(common.default_conv0,512,256,3,bn=True)
        self.res2_head = nn.Sequential(*[common.ResBlock(common.default_conv0,256,3) for i in range(4)])
        self.conv2_head_3 = common.BBlock(common.default_conv0,1024,512,3,bn=True)

        self.DWT = common.DWT()
Пример #3
0
    def __init__(self, args, conv=common.default_conv):
        super(BSR, self).__init__()
        n_resblocks = args.n_resblocks
        n_feats = args.n_feats
        kernel_size = 3
        self.scale_idx = 0

        act = nn.ReLU(True)

        self.DWT = common.DWT()
        self.IWT = common.IWT()

        n = 3
        m_head = [common.BBlock(conv, 4, 160, 3, act=act)]
        d_l1 = []
        for _ in range(n):
            d_l1.append(common.BBlock(conv, 160, 160, 3, act=act))

        d_l2 = [common.BBlock(conv, 640, n_feats * 4, 3, act=act)]
        for _ in range(n):
            d_l2.append(
                common.BBlock(conv, n_feats * 4, n_feats * 4, 3, act=act))

        pro_l3 = [common.BBlock(conv, n_feats * 16, n_feats * 4, 3, act=act)]
        for _ in range(n * 2):
            pro_l3.append(
                common.BBlock(conv, n_feats * 4, n_feats * 4, 3, act=act))
        pro_l3.append(
            common.BBlock(conv, n_feats * 4, n_feats * 16, 3, act=act))

        i_l2 = []
        for _ in range(n):
            i_l2.append(
                common.BBlock(conv, n_feats * 4, n_feats * 4, 3, act=act))
        i_l2.append(common.BBlock(conv, n_feats * 4, 640, 3, act=act))

        i_l1 = []
        for _ in range(n):
            i_l1.append((common.BBlock(conv, 160, 160, 3, act=act)))

        m_tail = [conv(160, 4, 3)]

        self.head = nn.Sequential(*m_head)
        self.d_l2 = nn.Sequential(*d_l2)
        self.d_l1 = nn.Sequential(*d_l1)
        self.pro_l3 = nn.Sequential(*pro_l3)
        self.i_l2 = nn.Sequential(*i_l2)
        self.i_l1 = nn.Sequential(*i_l1)
        self.tail = nn.Sequential(*m_tail)
Пример #4
0
    def __init__(self, args, conv=common.default_conv):
        super(KERNEL_EST, self).__init__()
        n_resblocks = args.n_resblocks
        n_feats = 48#args.n_feats
        kernel_size = 3
        self.scale_idx = 0

        act = nn.ReLU(True)


        self.DWT = common.DWT()
        self.IWT = common.IWT()

        m_head = [conv(args.n_colors*4+20, n_feats*2, kernel_size)]

        m_body = []
        for _ in range(10):
            m_body.append(common.BBlock(conv, n_feats*2, n_feats*2, kernel_size, act=act))

        m_tail = [conv(n_feats*2, args.n_colors*4, kernel_size)]


        self.head = nn.Sequential(*m_head)
        self.body = nn.Sequential(*m_body)
        self.tail = nn.Sequential(*m_tail)
Пример #5
0
    def __init__(self):
        super(MWRN_lv1_tail, self).__init__()
        self.color_channel = 3

        self.conv1_tail_1 = common.BBlock(common.default_conv0,
                                          256,
                                          640,
                                          3,
                                          bn=True)
        self.IWT = common.IWT()
        self.res1_tail = nn.Sequential(
            *[common.ResBlock(common.default_conv0, 160, 3) for i in range(4)])
        self.conv1_tail_2 = common.BBlock(common.default_conv0,
                                          160,
                                          4 * self.color_channel,
                                          3,
                                          bn=True)
Пример #6
0
    def __init__(self):
        super(MWRN_lv2_tail, self).__init__()
        self.color_channel = 3

        self.conv2_tail_1 = common.BBlock(common.default_conv0,
                                          512,
                                          1024,
                                          3,
                                          bn=True)
        self.IWT = common.IWT()
        self.res2_tail = nn.Sequential(
            *[common.ResBlock(common.default_conv0, 256, 3) for i in range(4)])
        self.conv2_tail_img = common.BBlock(common.default_conv0,
                                            256,
                                            16 * self.color_channel,
                                            3,
                                            bn=True)
Пример #7
0
    def __init__(self):
        super(MWRN_lv3, self).__init__()
        self.color_channel = 3

        self.conv3_1 = common.BBlock(common.default_conv0,
                                     64 * self.color_channel,
                                     512,
                                     3,
                                     bn=True)
        self.conv3_2 = common.BBlock(common.default_conv0,
                                     1024,
                                     512,
                                     3,
                                     bn=True)
        self.res3 = nn.Sequential(
            *[common.ResBlock(common.default_conv0, 512, 3) for i in range(8)])
        self.conv3_img = common.BBlock(common.default_conv0,
                                       512,
                                       64 * self.color_channel,
                                       3,
                                       bn=True)
Пример #8
0
    def __init__(self, args, conv=common.default_conv):
        super().__init__()
        n_resblocks = args.n_resblocks
        n_feats = args.n_feats
        kernel_size = 3
        self.scale_idx = 0
        nColor = args.n_colors

        act = nn.ReLU(True)

        self.DWT = common.DWT()
        self.IWT = common.IWT()

        n = 1
        m_head = [common.BBlock(conv, nColor, n_feats, kernel_size, act=act)]
        d_l0 = []
        d_l0.append(common.DBlock_com1(conv, n_feats, n_feats, kernel_size, act=act, bn=False))


        d_l1 = [common.BBlock(conv, n_feats * 4, n_feats * 2, kernel_size, act=act, bn=False)]
        d_l1.append(common.DBlock_com1(conv, n_feats * 2, n_feats * 2, kernel_size, act=act, bn=False))

        d_l2 = []
        d_l2.append(common.BBlock(conv, n_feats * 8, n_feats * 4, kernel_size, act=act, bn=False))
        d_l2.append(common.DBlock_com1(conv, n_feats * 4, n_feats * 4, kernel_size, act=act, bn=False))

        pro_l3 = []
        pro_l3.append(common.BBlock(conv, n_feats * 16, n_feats * 8, kernel_size, act=act, bn=False))
        pro_l3.append(common.DBlock_com(conv, n_feats * 8, n_feats * 8, kernel_size, act=act, bn=False))

        pro_l3.append(common.DBlock_inv(conv, n_feats * 8, n_feats * 8, kernel_size, act=act, bn=False))
        pro_l3.append(common.BBlock(conv, n_feats * 8, n_feats * 16, kernel_size, act=act, bn=False))

        i_l2 = [common.DBlock_inv1(conv, n_feats * 4, n_feats * 4, kernel_size, act=act, bn=False)]
        i_l2.append(common.BBlock(conv, n_feats * 4, n_feats * 8, kernel_size, act=act, bn=False))

        i_l1 = [common.DBlock_inv1(conv, n_feats * 2, n_feats * 2, kernel_size, act=act, bn=False)]
        i_l1.append(common.BBlock(conv, n_feats * 2, n_feats * 4, kernel_size, act=act, bn=False))

        i_l0 = [common.DBlock_inv1(conv, n_feats, n_feats, kernel_size, act=act, bn=False)]

        m_tail = [conv(n_feats, nColor, kernel_size)]

        self.head = nn.Sequential(*m_head)
        self.d_l2 = nn.Sequential(*d_l2)
        self.d_l1 = nn.Sequential(*d_l1)
        self.d_l0 = nn.Sequential(*d_l0)
        self.pro_l3 = nn.Sequential(*pro_l3)
        self.i_l2 = nn.Sequential(*i_l2)
        self.i_l1 = nn.Sequential(*i_l1)
        self.i_l0 = nn.Sequential(*i_l0)
        self.tail = nn.Sequential(*m_tail)
Пример #9
0
    def __init__(self, args, conv=common.default_conv):
        super(NL_EST, self).__init__()
        n_resblocks = args.n_resblocks
        n_feats = args.n_feats
        n_feats = 48
        kernel_size = 3
        self.scale_idx = 0

        act = nn.ReLU(True)

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

        self.DWT = common.DWT()
        self.IWT = common.IWT()

        m_head = [conv(args.n_colors * 4 + 4, n_feats * 2, kernel_size)]

        m_body = []
        for _ in range(10):
            m_body.append(
                common.BBlock(conv,
                              n_feats * 2,
                              n_feats * 2,
                              kernel_size,
                              act=act))
        # m_body.append(conv(n_feats, n_feats, kernel_size))
        #
        # self.upsample = nn.ModuleList([
        #     common.Upsampler(
        #         conv, s, n_feats, act=False
        #     ) for s in args.scale
        # ])

        m_tail = [conv(n_feats * 2, args.n_colors * 4, kernel_size)]

        # self.add_mean = common.MeanShift(args.rgb_range, rgb_mean, rgb_std, 1)

        self.head = nn.Sequential(*m_head)
        self.body = nn.Sequential(*m_body)

        self.tail = nn.Sequential(*m_tail)
Пример #10
0
Файл: cbsr.py Проект: lpj0/CBSR
    def __init__(self, args, conv=common.default_conv):
        super(CBSR, self).__init__()
        n_resblocks = args.n_resblocks
        n_feats = args.n_feats
        kernel_size = 3
        self.scale_idx = 0

        act = nn.ReLU(True)

        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.DWT = common.DWT()
        self.IWT = common.IWT()
        n = n_resblocks

        m_head = [conv(args.n_colors * 4 + 20, n_feats * 2, kernel_size + 2)]
        # d_l1 = [common.BBlock(conv, n_feats*4, n_feats*2, 3, act=act)]
        d_l1 = []
        for _ in range(n):
            #d_l1.append(common.BBlock(conv, n_feats*2, n_feats*2, 3, act=act))
            d_l1.append(common.ResBlock(conv, n_feats * 2, 3, act=act))
            d_l1.append(act)

        # dwt_l2 = [common.DWT]
        d_l2 = [common.BBlock(conv, n_feats * 8, n_feats * 4, 3, act=act)]
        for _ in range(n):
            d_l2.append(common.ResBlock(conv, n_feats * 4, 3, act=act))
            d_l2.append(act)
            #d_l2.append(common.BBlock(conv, n_feats * 4, n_feats * 4, 3, act=act))

        # pro_l3 = [common.DWT]
        pro_l3 = [common.BBlock(conv, n_feats * 16, n_feats * 8, 3, act=act)]
        for _ in range(n * 2):
            pro_l3.append(common.ResBlock(conv, n_feats * 8, 3, act=act))
            pro_l3.append(act)
        # pro_l3.append(common.BBlock(conv, n_feats * 8, n_feats * 16, 3, act=act))
        pro_l3.append(conv(n_feats * 8, n_feats * 16, 3))
        # pro_l3.append(common.IWT)

        i_l2 = []
        for _ in range(n):
            #i_l2.append(common.BBlock(conv, n_feats * 4, n_feats * 4, 3, act=act))
            i_l2.append(common.ResBlock(conv, n_feats * 4, 3, act=act))
            i_l2.append(act)
        # i_l2.append(common.BBlock(conv, n_feats * 4, n_feats * 8, 3, act=act))
        i_l2.append(conv(n_feats * 4, n_feats * 8, 3))
        # IWT = common.IWT
        # DWT = common.DWT

        i_l1 = []
        for _ in range(n):
            #i_l1.append(common.BBlock(conv, n_feats * 2, n_feats * 2, 3, act=act))
            i_l1.append(common.ResBlock(conv, n_feats * 2, 3, act=act))
            i_l1.append(act)

        m_tail = [conv(n_feats * 2, args.n_colors * 4, kernel_size + 4)]

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

        self.add_mean = common.MeanShift(args.rgb_range, rgb_mean, rgb_std, 1)

        self.head = nn.Sequential(*m_head)
        # self.d_l0 = nn.Sequential(*d_l0)
        self.d_l1 = nn.Sequential(*d_l1)
        self.d_l2 = nn.Sequential(*d_l2)
        self.pro_l3 = nn.Sequential(*pro_l3)
        self.i_l2 = nn.Sequential(*i_l2)
        self.i_l1 = nn.Sequential(*i_l1)
        # self.i_l0 = nn.Sequential(*i_l0)
        self.tail = nn.Sequential(*m_tail)
        self.act = nn.Sequential(act)