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.
docstr: Puts the discriminator's layers together. 
docstr_tok: ["Puts","the","discriminator","'s","layers","together","."]
code: def _build_disciminator(self):
      """Puts the discriminator's layers together."""
  
      HR = Input(shape=(self.patch_size, self.patch_size, 3))
      x = self._conv_block(
          HR, filters=64, strides=1, batch_norm=False, count=1
      )
      for i in range(self.block_num):
          x = self._conv_block(
              x,
              filters=self.block_param["filters"][i],
              strides=self.block_param["strides"][i],
              count=i + 2,
          )
      x = Dense(self.block_param["filters"][-1] * 2, name="Dense_1024")(
          x
      )
      x = LeakyReLU(alpha=0.2)(x)
      # x = Flatten()(x)
      x = Dense(1, name="Dense_last")(x)
      HR_v_SR = Activation("sigmoid")(x)
  
      discriminator = Model(inputs=HR, outputs=HR_v_SR)
      return discriminator
  
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 3 for calling the Discriminator obj's underlying member method code with example usage: obj._build_disciminator() and returns: discriminator