The fc of your discriminator looks a bit strange, as it is missing activation functions.
Basically you have a multi-layers linear transformation. Is this on purpose?
I’m not really familiar with LSGAN and WGANGP, but what kind of loss function are you currently using?
The softmax in the last layer of D looks a bit strange, as you would usually use raw logits or nn.LogSoftmax for nn.CrossEntropyLoss or nn.NLLLoss, respectively.