target_fake = target_fake.cuda() # for make Fake data noise_size = 100 z = Variable(torch.randn((batch_size, noise_size, 1, 1))) if torch.cuda.is_available(): z = z.cuda() discriminator = discriminator.cuda() generator = generator.cuda() if i % 1 == 0: # Training D with Real Data D_optimizer.zero_grad() D_real_decision = discriminator.forward(real_data) D_real_loss = D_loss_function(D_real_decision, target_real) # Training D with Fake Data fake_data = generator.forward(z) D_fake_decision = discriminator.forward(fake_data) D_fake_loss = D_loss_function(D_fake_decision, target_fake) D_loss = D_real_loss + D_fake_loss if i % 10 == 0: print('{0}: D_loss is {1}'.format(i, D_loss)) D_loss.backward() D_optimizer.step() if i % 1 == 0:
# for make Fake data noise_size = 100 z = torch.randn(batch_size, noise_size) fake_label = Variable( torch.LongTensor(np.random.randint(0, 10, batch_size))) if torch.cuda.is_available(): z = z.cuda() fake_label = fake_label.cuda() discriminator = discriminator.cuda() generator = generator.cuda() if i % 1 == 0: # Training D with Real Data D_optimizer.zero_grad() D_real_decision = discriminator.forward(real_data, real_label) D_real_loss = D_loss_function(D_real_decision, target_real) # Training D with Fake Data fake_data = generator.forward(z, fake_label) D_fake_decision = discriminator.forward(fake_data, fake_label) D_fake_loss = D_loss_function(D_fake_decision, target_fake) D_loss = D_real_loss + D_fake_loss if i % 10 == 0: print('{0}: D_loss is {1}'.format(i, D_loss)) D_loss.backward() D_optimizer.step() if i % 1 == 0: