code: def __init__(
      self,
      in_channels: int,
      hidden_channels: int,
      out_channels: int,
      num_layers: int,
      dropout: float = 0.0,
      batch_norm: bool = True,
      relu_last: bool = False,
  ):
      super(MLP, self).__init__()
  
      self.lins = ModuleList()
      self.lins.append(Linear(in_channels, hidden_channels))
      for _ in range(num_layers - 2):
          self.lins.append(Linear(hidden_channels, hidden_channels))
      self.lins.append(Linear(hidden_channels, out_channels))
  
      self.batch_norms = ModuleList()
      for _ in range(num_layers - 1):
          norm = (
              BatchNorm1d(hidden_channels) if batch_norm else Identity()
          )
          self.batch_norms.append(norm)
  
      self.dropout = dropout
      self.relu_last = relu_last
  
file_path: ogb/examples/lsc/mag240m/preprocess_correct_and_smooth.py
imports: import time
  import argparse
  from tqdm.auto import tqdm
  import torch
  import numpy
  import torch.nn.functional
  from torch.utils.data import DataLoader
  from torch.nn import ModuleList, Linear, BatchNorm1d, Identity
  from ogb.utils.url import makedirs
  from ogb.lsc import MAG240MDataset, MAG240MEvaluator
  from root import ROOT
label_desc: Use image node_id 1 to create a new MLP object from inherited base classes: torch.nn with example: obj = MLP(in_channels, hidden_channels, out_channels, num_layers, dropout, batch_norm, relu_last)