code: def __init__(self, in_dim, hid_dim, out_dim, num_layers, dropout=0.0):
      super(MLP, self).__init__()
      assert num_layers >= 2
  
      self.linears = nn.ModuleList()
      self.bns = nn.ModuleList()
      self.linears.append(nn.Linear(in_dim, hid_dim))
      self.bns.append(nn.BatchNorm1d(hid_dim))
  
      for _ in range(num_layers - 2):
          self.linears.append(nn.Linear(hid_dim, hid_dim))
          self.bns.append(nn.BatchNorm1d(hid_dim))
  
      self.linears.append(nn.Linear(hid_dim, out_dim))
      self.dropout = dropout
      self.reset_parameters()
  
imports: import dgl.function
  import torch
  import torch.nn
  import torch.nn.functional
label_desc: Use image node_id 1 to create a new MLP object from inherited base classes: nn with example: obj = MLP(in_dim, hid_dim, out_dim, num_layers, dropout)