code: def __init__(
      self, in_channels, hidden_channels, out_channels, num_nonl_layers
  ):
      super(NGNN_GCNConv, self).__init__()
      self.num_nonl_layers = num_nonl_layers  # number of nonlinear layers in each conv layer
      self.conv = GraphConv(in_channels, hidden_channels)
      self.fc = Linear(hidden_channels, hidden_channels)
      self.fc2 = Linear(hidden_channels, out_channels)
      self.reset_parameters()
  
imports: import argparse
  import math
  import dgl
  import torch
  import torch.nn.functional
  from dgl.dataloading.negative_sampler import GlobalUniform
  from dgl.nn.pytorch import GraphConv, SAGEConv
  from ogb.linkproppred import DglLinkPropPredDataset, Evaluator
  from torch.nn import Linear
  from torch.utils.data import DataLoader
label_desc: Use image node_id 1 to create a new NGNN_GCNConv object from inherited base classes: torch.nn with example: obj = NGNN_GCNConv(in_channels, hidden_channels, out_channels, num_nonl_layers)