code: def __init__(
      self, in_feats, n_hidden, n_classes, n_layers, activation
  ):
      super().__init__()
      self.n_layers = n_layers
      self.n_hidden = n_hidden
      self.n_classes = n_classes
      self.layers = nn.ModuleList()
      self.layers.append(SAGEConvWithCV(in_feats, n_hidden, activation))
      for i in range(1, n_layers - 1):
          self.layers.append(
              SAGEConvWithCV(n_hidden, n_hidden, activation)
          )
      self.layers.append(SAGEConvWithCV(n_hidden, n_classes, None))
  
imports: import argparse
  import time
  import dgl
  import dgl.function
  import dgl.nn.pytorch
  import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  import torch.optim
  import tqdm
  from dgl.data import RedditDataset
  from torch.utils.data import DataLoader
label_desc: Use image node_id 1 to create a new SAGE object from inherited base classes: nn with example: obj = SAGE(in_feats, n_hidden, n_classes, n_layers, activation)