class_docstr: pytorch nn.Module implementation for gan.network.Discriminator
  
  `input_size` is an extra param that need to be set during the init
  due to the different stype between tf and torch
  `input_size` should be the sum of input_feature and input_attribute
  flattened length
code: def __init__(self, input_size, num_layers=5, num_units=200):
      super().__init__()
  
      self.num_layers = num_layers
      self.num_units = num_units
  
      layers_dim = [input_size] + [num_units] * (num_layers - 1) + [1]
      mlp_layers = []
      for i in range(num_layers):
          mlp_layers.append(
              linear(
                  input_size=layers_dim[i],
                  output_size=layers_dim[i + 1],
              )
          )
          if i < num_layers - 1:
              mlp_layers.append(nn.ReLU())
      self.mlp = nn.Sequential(*mlp_layers)
  
imports: import torch
  from torch import nn
  import torch.nn.functional
  import numpy
  from enum import Enum
  from .op import linear, flatten
  from .output import OutputType, Normalization
label_desc: Use image node_id 1 to create a new Discriminator object from inherited base classes: nn with example: obj = Discriminator(input_size, num_layers, num_units)