class_docstr: The MLP module used in the encoder and decoder
  
  :meta private:
docstr: :param input_size: The input dimension
  :param output_size: The output dimension
  :param layer_sizes: The hidden layer sizes
  :param activation: The activation function for the hidden layers
  :param last_layer_activation: The activation function for the last layer
  :param dropout_prob: The dropout rate
docstr_tok: [":","param","input_size",":","The","input","dimension",":","param","output_size",":","The","output","dimension",":","param","layer_sizes",":","The","hidden","layer","sizes",":","param","activation",":","The","activation","function","for","the","hidden","layers",":","param","last_layer_activation",":","The","activation","function","for","the","last","layer",":","param","dropout_prob",":","The","dropout","rate"]
code: def __init__(
      self,
      input_size,
      output_size,
      layer_sizes,
      activation,
      last_layer_activation,
      dropout_prob,
  ):
      """
      :param input_size: The input dimension
      :param output_size: The output dimension
      :param layer_sizes: The hidden layer sizes
      :param activation: The activation function for the hidden layers
      :param last_layer_activation: The activation function for the last layer
      :param dropout_prob: The dropout rate
      """
      super().__init__()
      layers, layer_sizes = [], [input_size] + list(layer_sizes)
      for i in range(1, len(layer_sizes)):
          layers.append(nn.Linear(layer_sizes[i - 1], layer_sizes[i]))
          layers.append(activation())
          layers.append(nn.Dropout(p=dropout_prob))
      layers.append(nn.Linear(layer_sizes[-1], output_size))
      layers.append(last_layer_activation())
      self.layers = torch.nn.Sequential(*layers)
  
imports: from typing import Sequence
  import numpy
  import pandas
  from merlion.models.base import NormalizingConfig
  from merlion.models.anomaly.base import DetectorBase, DetectorConfig
  from merlion.post_process.threshold import AggregateAlarms
  from merlion.utils.misc import ProgressBar, initializer
  from merlion.models.utils.rolling_window_dataset import RollingWindowDataset
label_desc: Use image node_id 1 to create a new MLP object from inherited base classes: nn with example: obj = MLP(input_size, output_size, layer_sizes, activation, last_layer_activation, dropout_prob)