code: def __init__(self, input_dim, output_dim, L=2):  # L=nb_hidden_layers
      super().__init__()
      list_FC_layers = [
          nn.Linear(
              input_dim // 2**l, input_dim // 2 ** (l + 1), bias=True
          )
          for l in range(L)
      ]
      list_FC_layers.append(
          nn.Linear(input_dim // 2**L, output_dim, bias=True)
      )
      self.FC_layers = nn.ModuleList(list_FC_layers)
      self.L = L
  
imports: import argparse
  import random
  import dgl
  import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  import torch.optim
  from dgl.dataloading import GraphDataLoader
  from ogb.graphproppred import Evaluator
  from ogb.graphproppred.mol_encoder import AtomEncoder
  from preprocessing import prepare_dataset
  from torch.utils.data import Dataset
  from tqdm import tqdm
label_desc: Use image node_id 1 to create a new MLPReadout object from inherited base classes: nn with example: obj = MLPReadout(input_dim, output_dim, L)