Ejemplo n.º 1
0
        prog.add_loss_critic(loss_critic.data.cpu().numpy()[0])

        dis_optim.zero_grad()
        loss_critic.backward()
        dis_optim.step()

    prog.add_loss_dis()
    z = sampler.sample_z(config['dim_z'],
                         batchsize,
                         gaussian=config['gaussian'])
    z = Variable(torch.from_numpy(z).cuda())
    samples_fake = gen_net(z)
    samples_fake /= config['scale']
    f_fake = dis_net(samples_fake)
    loss_gen = -f_fake.mean()
    prog.add_loss_gen(loss_gen.data.cpu().numpy()[0])

    gen_optim.zero_grad()
    loss_gen.backward()
    gen_optim.step()

    if (i + 1) % config['num_plot'] == 0:
        print(i + 1)
        z = sampler.sample_z(config['dim_z'],
                             10000,
                             gaussian=config['gaussian'])
        z = Variable(torch.from_numpy(z).cuda())
        samples_fake = gen_net(z).data.cpu().numpy()
        plot.plot_scatter(samples_fake,
                          filename='{}_scatter'.format(i + 1),
                          show=True)
Ejemplo n.º 2
0
        dis_optim.zero_grad()
        loss_critic.backward()
        dis_optim.step()
        dis_net.clip()

    prog.add_loss_dis()
    z = sampler.sample_z(config['dim_z'],
                         batchsize,
                         gaussian=config['gaussian'])
    z = Variable(torch.from_numpy(z))
    samples_fake = gen_net(z)
    samples_fake /= config['scale']
    f_fake = dis_net(samples_fake)
    loss_gen = -f_fake.mean()
    prog.add_loss_gen(loss_gen)

    gen_optim.zero_grad()
    loss_gen.backward()
    gen_optim.step()

    if (i + 1) % config['num_plot'] == 0:
        print(i + 1)
        z = sampler.sample_z(config['dim_z'],
                             10000,
                             gaussian=config['gaussian'])
        z = Variable(torch.from_numpy(z))
        samples_fake = gen_net(z).data.numpy()
        plot.plot_scatter(samples_fake,
                          dir='plot',
                          filename='{}_scatter'.format(i + 1))
Ejemplo n.º 3
0
        f_fake = dis_net(samples_fake)
        loss_critic = f_fake.mean() - f_true.mean() + \
            (config['lda']*diff).mean()
        prog.add_loss_critic(cpu(loss_critic.data).numpy()[0])

        dis_optim.zero_grad()
        loss_critic.backward()
        dis_optim.step()

    prog.add_loss_dis()
    z = sampler.sample_z(batchsize,config['dim_z'])
    z = Variable(cuda(torch.from_numpy(z)))
    samples_fake = gen_net(z)
    f_fake = dis_net(samples_fake)
    loss_gen = -f_fake.mean()
    prog.add_loss_gen(cpu(loss_gen.data).numpy()[0])

    gen_optim.zero_grad()
    loss_gen.backward()
    gen_optim.step()

    if (i+1)%config['num_plot'] == 0:
        print(i+1,prog.duration())
        z = sampler.sample_z(500,config['dim_z'])
        z = Variable(cuda(torch.from_numpy(z)))
        samples_fake = cpu(gen_net(z).data).numpy()
        plot.plot_corr(samples_fake,dir='plot',
            filename='{}_corr'.format(i+1),show=False)
        plot.plot_scatter(sampler.mat[:,:200].T,samples_fake[:200,:],
            dir='plot',filename='{}_scatter'.format(i+1),show=False)
        prog.start()