code: def __init__(
      self, graph, train_idx, val_idx, fanouts, batch_size, n_classes
  ):
      super().__init__()
  
      sampler = dgl.dataloading.NeighborSampler(
          fanouts,
          prefetch_node_feats=["feat"],
          prefetch_labels=["label"],
      )
  
      self.g = graph
      self.train_idx, self.val_idx = train_idx, val_idx
      self.sampler = sampler
      self.batch_size = batch_size
      self.in_feats = graph.ndata["feat"].shape[1]
      self.n_classes = n_classes
  
imports: import glob
  import os
  import dgl
  import dgl.nn.pytorch
  import torch
  import torch.nn
  import torch.nn.functional
  import torch.optim
  import torchmetrics.functional
  import tqdm
  from ogb.nodeproppred import DglNodePropPredDataset
  from pytorch_lightning import LightningDataModule, LightningModule, Trainer
  from pytorch_lightning.callbacks import ModelCheckpoint
  from torchmetrics import Accuracy
label_desc: Use image node_id 1 to create a new DataModule object from inherited base classes: LightningDataModule with example: obj = DataModule(graph, train_idx, val_idx, fanouts, batch_size, n_classes)