class_docstr: Implementation of the discriminator network for the adversarial
  component of the perceptual loss.
  
  Args:
      patch_size: integer, determines input size as (patch_size, patch_size, 3).
      kernel_size: size of the kernel in the conv blocks.
  
  Attributes:
      model: Keras model.
      name: name used to identify what discriminator is used during GANs training.
      model._name: identifies this network as the discriminator network
          in the compound model built by the trainer class.
      block_param: dictionary, determines the number of filters and the strides for each
          conv block.
code: def __init__(self, patch_size, kernel_size=3):
      self.patch_size = patch_size
      self.kernel_size = kernel_size
      self.block_param = {}
      self.block_param["filters"] = (64, 128, 128, 256, 256, 512, 512)
      self.block_param["strides"] = (2, 1, 2, 1, 1, 1, 1)
      self.block_num = len(self.block_param["filters"])
      self.model = self._build_disciminator()
      optimizer = Adam(0.0002, 0.5)
      self.model.compile(
          loss="binary_crossentropy",
          optimizer=optimizer,
          metrics=["accuracy"],
      )
      self.model._name = "discriminator"
      self.name = "srgan-large"
  
imports: from tensorflow.keras.layers import Input, Activation, Dense, Conv2D, BatchNormalization, LeakyReLU
  from tensorflow.keras.models import Model
  from tensorflow.keras.optimizers import Adam
label_desc: Use image node_id 1 to create a new Discriminator object  with example: obj = Discriminator(patch_size, kernel_size)