Esempio n. 1
0
    def __init__(self, opt):
        super(_competitionGan, self).__init__(opt)
        self.opt = opt
        self.x_dim = opt.x_dim
        self.z_dim = opt.z_dim
        self.condition_D = opt.condition_D
        self.nums = opt.nums
        self.mb_size = opt.mb_size
        self.Lambda = opt.Lambda
        self.savepath = opt.savepath
        self.cnt = 0

        self.netGs = create_nets(opt.g_model, opt.z_dim, opt.nums, type='G')
        self.netD = build_netD(opt.d_model, opt.x_dim, opt.condition_D)


        X = torch.FloatTensor(opt.mb_size, opt.x_dim, opt.img_size, opt.img_size)
        Z = torch.FloatTensor(opt.mb_size, opt.z_dim, 1, 1)

        condition_data = torch.FloatTensor(opt.mb_size, opt.img_size * opt.img_size + opt.condition_D)
        real_like_sample = torch.FloatTensor(opt.mb_size, opt.img_size*opt.img_size)
        fake_like_sample = torch.FloatTensor(opt.mb_size, opt.img_size*opt.img_size)
        
        label = torch.FloatTensor(opt.mb_size)
        self.criterionGAN = torch.nn.BCELoss()
        self.criterionL1 = torch.nn.L1Loss()

        if self.cuda:
            netD.cuda()
            netG.cuda()
            self.criterionGAN.cuda()
            self.L1loss.cuda()
            X, Z = X.cuda(), Z.cuda()
            condition_data = condition_data.cuda()
            real_like_sample, fake_like_sample = real_like_sample.cuda(), fake_like_sample.cuda()
            label = label.cuda()

        self.X = Variable(X)
        self.Z = Variable(Z)
        self.condition_data = Variable(condition_data)
        self.real_like_sample = Variable(real_like_sample)
        self.fake_like_sample = Variable(fake_like_sample)
        self.label= Variable(label)

        if self.opt.cc:
            self.create_tensorboard()
            self.index_exp = create_sigle_experiment(self.cc, 'index')
        self.D_solver = torch.optim.Adam(self.netD.parameters(), lr=2e-4, betas=(0.5, 0.999))
        self.G_solvers = create_optims(self.netGs, [2e-4, (0.5, 0.999)])

        if opt.train == False:
            self.load_networkG(self.opt.g_network_path)
            self.load_networkD(self.opt.d_network_path)
        else:
            init_network(self.netD)
            init_network(self.netGs)
Esempio n. 2
0
x_dim = x_dim_w * x_dim_h
train_size = train_loader.dataset.train_data.size()[0]
y_dim = 10
lr = 1e-3
cnt = 0
nets_num = 10

cuda = False

cc = CrayonClient(hostname="localhost")
cc.remove_all_experiments()
D_exp = create_sigle_experiment(cc, 'D_loss')
G_exps = create_experiments(cc, 10)

netG_share = build_netG(config['G'][2], z_dim)
netG_indeps = create_nets(config['G'], h_dim, nets_num)
netD = build_netD(config['D'][2], x_dim)

init_network(netG_share)
init_network(netG_indeps)
init_network(netD)

D_solver = optim.Adam(netD.parameters(), lr=lr)
G_share_solver = optim.Adam(netG_share.parameters(), lr=lr)
G_indep_solver = create_optims(netG_indeps, [
    lr,
])
G_solvers = create_couple2one_optims(netG_share, netG_indeps, [
    lr,
])
cnt = 0
display_cnt = 100
iter = 2
nets_num = 10

cuda = False
netD_continue_trian = True

cc = CrayonClient(hostname="localhost")
cc.remove_all_experiments()
D_exp = create_sigle_experiment(cc, 'D_loss')
D_preb_real = create_sigle_experiment(cc, 'preb_real')
D_preb_fake = create_sigle_experiment(cc, 'preb_fake')
G_exps = create_experiments(cc, 10)

netG_indeps = create_nets(config['G'][2], z_dim, nets_num)
netG_share = build_netG(config['G'][3], h_dim)
netD = build_netD(config['D'][2], x_dim)

print netG_indeps
print netG_share

init_network(netG_share)
init_network(netG_indeps)
init_network(netD)

D_solver = optim.Adam(netD.parameters(), lr=lr)
G_share_solver = optim.Adam(netG_share.parameters(), lr=lr)
G_indep_solver = create_optims(netG_indeps, [lr, (0.5, 0.999)])

X = torch.FloatTensor(mb_size, x_dim)