code: def __init__(
      self, in_feats, n_hidden, n_classes, n_layers, activation, dropout
  ):
      super().__init__()
      self.n_layers = n_layers
      self.n_hidden = n_hidden
      self.n_classes = n_classes
      self.layers = nn.ModuleList()
      self.layers.append(dglnn.SAGEConv(in_feats, n_hidden, "mean"))
      for i in range(1, n_layers - 1):
          self.layers.append(dglnn.SAGEConv(n_hidden, n_hidden, "mean"))
      self.layers.append(dglnn.SAGEConv(n_hidden, n_classes, "mean"))
      self.dropout = nn.Dropout(dropout)
      self.activation = activation
  
imports: 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
  from ..None import utils
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, dropout)