Exemple #1
0
                       centers=dset.centers,
                       title='Sampled data points',
                       path='{}/samples.png'.format(exp_dir))

    prefix = "unrolled_steps-{}-prior_std-{:.2f}".format(
        config.unrolled_steps, np.std(dset.p))
    print("Save file with prefix", prefix)

    G = Generator(input_size=config.g_inp,
                  hidden_size=config.g_hid,
                  output_size=config.g_out).cuda()
    G._apply(lambda t: t.detach().checkpoint())
    D = Discriminator(input_size=config.d_inp,
                      hidden_size=config.d_hid,
                      output_size=config.d_out).cuda()
    D._apply(lambda t: t.detach().checkpoint())
    criterion = nn.BCELoss(
    )  # Binary cross entropy: http://pytorch.org/docs/nn.html#bceloss

    def binary_cross_entropy(x, y):
        loss = -(x.log() * y + (1 - x).log() * (1 - y))
        return loss.mean()

    criterion = binary_cross_entropy

    d_optimizer = optim.Adam(D.parameters(),
                             lr=config.d_learning_rate,
                             betas=config.optim_betas)
    g_optimizer = optim.Adam(G.parameters(),
                             lr=config.g_learning_rate,
                             betas=config.optim_betas)