Advertisement
Guest User

qwerklkjhgfd

a guest
Apr 25th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.65 KB | None | 0 0
  1. alpha = torch.rand(real_x.size(0), 1, 1, 1).cuda().expand_as(real_x)
  2. beta = torch.rand(real_x.size())
  3. y = real_x.data + 0.5 * real_x.data.std() * beta
  4. interpolated = real_x.data + alpha * (y - real_x.data)
  5. interpolated = Variable(interpolated, requires_grad=True)
  6. out, out_cls = self.D(interpolated)
  7. grad = torch.autograd.grad(outputs=[out, out_cls], inputs=interpolated,
  8.                            grad_outputs=[torch.ones(out.size()).cuda(), torch.ones(out_cls.size()).cuda()],
  9.                            retain_graph=True, create_graph=True, only_inputs=True)[0]
  10. grad = grad.view(grad.size(0), -1)
  11. d_loss_gp = ((grad.norm(p=2, dim=1) - 1) ** 2).mean()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement