class_docstr: NP Semantic Segmentation classifier model (based on tf.Keras framework).
  
  Args:
      num_epochs(int): number of epochs to train the model
      **callback_args (dict): callback args keyword arguments to init a Callback for the model
      loss: the model's cost function. Default is 'tf.keras.losses.binary_crossentropy' loss
      optimizer (:obj:`tf.keras.optimizers`): the model's optimizer. Default is 'adam'
docstr: Build the model's layers
  Args:
      input_dim (int): the first layer's input_dim
code: def build(self, input_dim):
      """
      Build the model's layers
      Args:
          input_dim (int): the first layer's input_dim
      """
      first_layer_dens = 64
      second_layer_dens = 64
      output_layer_dens = 1
      model = tf.keras.models.Sequential()
      model.add(
          tf.keras.layers.Dense(
              first_layer_dens, activation="relu", input_dim=input_dim
          )
      )
      model.add(tf.keras.layers.Dropout(0.5))
      model.add(
          tf.keras.layers.Dense(second_layer_dens, activation="relu")
      )
      model.add(tf.keras.layers.Dropout(0.5))
      model.add(
          tf.keras.layers.Dense(output_layer_dens, activation="sigmoid")
      )
      metrics = ["binary_accuracy", precision_score, recall_score, f1]
      # Compile model
      model.compile(
          loss=self.loss, optimizer=self.optimizer, metrics=metrics
      )
      self.model = model
  
file_path: nlp-architect/nlp_architect/models/np_semantic_segmentation.py
imports: import tensorflow
label_desc: Use image node_id 2 for calling the NpSemanticSegClassifier obj's underlying member method code with example usage: obj.build(input_dim) without return types