Could you change this line of code:
x = x.view(-1, self.ndf * 1)

to
x = x.view(x.size(0), -1)

and check, if you would get a shape mismatch?
The latter approach makes sure the batch dimension stays constant, while the latter one could push additional dimensions to the batch dim.