code: def __init__(
      self,
      output,
      hidden=256,
      layers=2,
      batch_norm=True,
      dropout=0.0,
      activation="prelu",
      final_activation=None,
  ):
      super().__init__()
      self.config = {
          "output": output,
          "hidden": hidden,
          "layers": layers,
          "batch_norm": batch_norm,
          "dropout": dropout,
          "activation": activation,
          "final_activation": final_activation,
      }
      self.batch_norm = batch_norm
      self.dropout_rate = dropout
  
      self.mlp = Sequential()
      for i in range(layers):
          # Linear
          self.mlp.add(Dense(hidden if i < layers - 1 else output))
          # Batch norm
          if self.batch_norm:
              self.mlp.add(BatchNormalization())
          # Dropout
          self.mlp.add(Dropout(self.dropout_rate))
          # Activation
          self.mlp.add(
              get_act(
                  activation if i < layers - 1 else final_activation
              )
          )
  
file_path: spektral/spektral/models/general_gnn.py
imports: from tensorflow.keras import Model, Sequential
  from tensorflow.keras.layers import Activation, Add, BatchNormalization, Concatenate, Dense, Dropout, PReLU
  from spektral.layers import GeneralConv
  from spektral.layers.pooling import global_pool
label_desc: Use image node_id 1 to create a new MLP object from inherited base classes: Model with example: obj = MLP(output, hidden, layers, batch_norm, dropout, activation, final_activation)