code: def build_hidden_layers(
      input_size, hidden_sizes, dropout_rate, activation
  ):
      """
      :meta private:
      """
      hidden_layers = []
      for i in range(len(hidden_sizes)):
          s = input_size if i == 0 else hidden_sizes[i - 1]
          hidden_layers.append(nn.Linear(s, hidden_sizes[i]))
          hidden_layers.append(activation())
          hidden_layers.append(nn.Dropout(dropout_rate))
      return torch.nn.Sequential(*hidden_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 for calling a global function with example usage: build_hidden_layers(input_size, hidden_sizes, dropout_rate, activation) and returns: torch