code: def __init__(self, input_dim, hidden_dim, output_dim, args):
      super(GNN, self).__init__()
      self.dropout = args.dropout
      self.num_layers = args.num_layers
  
      self.convs = nn.ModuleList()
      self.bns = nn.ModuleList()
  
      self.convs.append(SAGEConv(input_dim, hidden_dim))
      self.bns.append(nn.BatchNorm1d(hidden_dim))
  
      for l in range(self.num_layers - 2):
          self.convs.append(SAGEConv(hidden_dim, hidden_dim))
          self.bns.append(nn.BatchNorm1d(hidden_dim))
      self.convs.append(SAGEConv(hidden_dim, hidden_dim))
  
      self.post_mp = nn.Linear(hidden_dim, output_dim)
  
file_path: deepsnap/examples/sampling/model.py
imports: import torch
  import torch.nn
  import torch.nn.functional
  from torch_geometric.nn import SAGEConv
label_desc: Use image node_id 1 to create a new GNN object from inherited base classes: torch.nn with example: obj = GNN(input_dim, hidden_dim, output_dim, args)