class_docstr: Grahpsage network that concatenate several graphsage layer
class_docstr_tok: ["Grahpsage","network","that","concatenate","several","graphsage","layer"]
code: def __init__(
      self,
      in_feats,
      n_hidden,
      n_classes,
      n_layers,
      activation,
      dropout,
      aggregator_type,
  ):
      super(GraphSage, self).__init__()
      self.layers = nn.ModuleList()
  
      # input layer
      self.layers.append(
          GraphSageLayer(
              in_feats, n_hidden, activation, dropout, aggregator_type
          )
      )
      # hidden layers
      for _ in range(n_layers - 1):
          self.layers.append(
              GraphSageLayer(
                  n_hidden,
                  n_hidden,
                  activation,
                  dropout,
                  aggregator_type,
              )
          )
      # output layer
      self.layers.append(
          GraphSageLayer(
              n_hidden, n_classes, None, dropout, aggregator_type
          )
      )
  
imports: import dgl.function
  import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  from scipy.linalg import block_diag
  from model.loss import EntropyLoss
  from ..model_utils import masked_softmax
  from .aggregator import LSTMAggregator, MaxPoolAggregator, MeanAggregator
  from .bundler import Bundler
label_desc: Use image node_id 1 to create a new GraphSage object from inherited base classes: nn with example: obj = GraphSage(in_feats, n_hidden, n_classes, n_layers, activation, dropout, aggregator_type)