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)