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)
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()
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)
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)
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)
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)
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)
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)
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)
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)