class_docstr: ### Simple MLP Discriminator
  
  This has three  linear layers of decreasing size with `LeakyReLU` activations.
  The final layer has a single output that gives the logit of whether input
  is real or fake. You can get the probability by calculating the sigmoid of it.
class_docstr_tok: ["#","#","#","Simple","MLP","Discriminator","This","has","three","linear","layers","of","decreasing","size","with","`","LeakyReLU","`","activations",".","The","final","layer","has","a","single","output","that","gives","the","logit","of","whether","input","is","real","or","fake",".","You","can","get","the","probability","by","calculating","the","sigmoid","of","it","."]
code: def forward(self, x):
      return self.layers(x.view(x.shape[0], -1))
  
imports: from typing import Any
  import torch
  import torch.nn
  import torch.utils.data
  from torchvision import transforms
  from labml import tracker, monit, experiment
  from labml.configs import option, calculate
  from labml_helpers.datasets.mnist import MNISTConfigs
  from labml_helpers.device import DeviceConfigs
  from labml_helpers.module import Module
  from labml_helpers.optimizer import OptimizerConfigs
  from labml_helpers.train_valid import TrainValidConfigs, hook_model_outputs, BatchIndex
  from labml_nn.gan.original import DiscriminatorLogitsLoss, GeneratorLogitsLoss
label_desc: Use image node_id 2 for calling the Discriminator obj's underlying member method code with example usage: obj.forward(x) and returns: self