code: def __init__(self, hidden_channels, num_layers):
      super().__init__()
  
      self.node_encoder = Linear(data.x.size(-1), hidden_channels)
      self.edge_encoder = Linear(
          data.edge_attr.size(-1), hidden_channels
      )
  
      self.layers = torch.nn.ModuleList()
      for i in range(1, num_layers + 1):
          conv = GENConv(
              hidden_channels,
              hidden_channels,
              aggr="softmax",
              t=1.0,
              learn_t=True,
              num_layers=2,
              norm="layer",
          )
          norm = LayerNorm(hidden_channels, elementwise_affine=True)
          act = ReLU(inplace=True)
  
          layer = DeepGCNLayer(
              conv,
              norm,
              act,
              block="res+",
              dropout=0.1,
              ckpt_grad=i % 3,
          )
          self.layers.append(layer)
  
      self.lin = Linear(hidden_channels, data.y.size(-1))
  
file_path: pytorch_geometric/examples/ogbn_proteins_deepgcn.py
imports: import torch
  import torch.nn.functional
  from ogb.nodeproppred import Evaluator, PygNodePropPredDataset
  from torch.nn import LayerNorm, Linear, ReLU
  from tqdm import tqdm
  from torch_geometric.loader import RandomNodeLoader
  from torch_geometric.nn import DeepGCNLayer, GENConv
  from torch_geometric.utils import scatter
label_desc: Use image node_id 1 to create a new DeeperGCN object from inherited base classes: torch.nn with example: obj = DeeperGCN(hidden_channels, num_layers)