I'm trying to implement [WGAN-GP](https://arxiv.org/pdf/1704.00028.pdf) in
Gluon.There is a "gradient_penalty" in this paper.I wrote it as this
```python
def calc_gradient_penalty(netD, real_data, fake_data, LAMBDA, ctx):
real_data = real_data.as_in_context(ctx)
b_s = real_data.shape[0]
alpha = nd.random.uniform(0, 1, shape=(b_s, 1), ctx=ctx)
alpha = alpha.broadcast_to(real_data.shape)
interpolates = alpha * real_data + ((1 - alpha) * fake_data)
interpolates = nd.array(interpolates, ctx=ctx)
interpolates.attach_grad()
disc_interpolates = netD(interpolates)
gradients = autograd.grad(heads=disc_interpolates, variables=interpolates,
head_grads=nd.ones(shape=disc_interpolates.shape,
ctx=ctx),
create_graph=True, retain_graph=True,
train_mode=True)[0]
gradients = gradients.reshape((gradients.shape[0], -1))
gradient_penalty = ((gradients.norm(2, axis=1, keepdims=True) - 1) **
2).mean() * LAMBDA
return gradient_penalty
```
but when I backward with this an error raised 'Operator
_backward_FullyConnected is non-differentiable because it didn't register
FGradient attribute.'
complete code is
[here](https://gist.github.com/PistonY/ec4cdc76335dcba74c457b6d22e55ebc)
How can I solve it?
[ Full content available at:
https://github.com/apache/incubator-mxnet/issues/12529 ]
This message was relayed via gitbox.apache.org for [email protected]