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: Convolutional layer + Leaky ReLU + conditional BN. 
docstr_tok: ["Convolutional","layer","+","Leaky","ReLU","+","conditional","BN","."]
code: def _conv_block(
      self, input, filters, strides, batch_norm=True, count=None
  ):
      """Convolutional layer + Leaky ReLU + conditional BN."""
  
      x = Conv2D(
          filters,
          kernel_size=self.kernel_size,
          strides=strides,
          padding="same",
          name="Conv_{}".format(count),
      )(input)
      x = LeakyReLU(alpha=0.2)(x)
      if batch_norm:
          x = BatchNormalization(momentum=0.8)(x)
      return x
  
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 2 for calling the Discriminator obj's underlying member method code with example usage: obj._conv_block(input, filters, strides, batch_norm, count) and returns: x