code: def __init__(self, hidden_channels, num_layers, num_heads, num_bases):
      super().__init__()
      if args.use_multi_aggregators:
          aggregators = ["sum", "mean", "max"]
      else:
          aggregators = ["symnorm"]
  
      self.encoder = AtomEncoder(hidden_channels)
  
      self.convs = torch.nn.ModuleList()
      self.norms = torch.nn.ModuleList()
      for _ in range(num_layers):
          self.convs.append(
              EGConv(
                  hidden_channels,
                  hidden_channels,
                  aggregators,
                  num_heads,
                  num_bases,
              )
          )
          self.norms.append(BatchNorm1d(hidden_channels))
  
      self.mlp = Sequential(
          Linear(hidden_channels, hidden_channels // 2, bias=False),
          BatchNorm1d(hidden_channels // 2),
          ReLU(inplace=True),
          Linear(
              hidden_channels // 2, hidden_channels // 4, bias=False
          ),
          BatchNorm1d(hidden_channels // 4),
          ReLU(inplace=True),
          Linear(hidden_channels // 4, 1),
      )
  
file_path: pytorch_geometric/examples/egc.py
imports: import argparse
  import os.path
  import torch
  import torch.nn.functional
  from ogb.graphproppred import Evaluator
  from ogb.graphproppred import PygGraphPropPredDataset
  from ogb.graphproppred.mol_encoder import AtomEncoder
  from torch.nn import BatchNorm1d, Linear, ReLU, Sequential
  from torch.optim.lr_scheduler import ReduceLROnPlateau
  import torch_geometric.transforms
  from torch_geometric.loader import DataLoader
  from torch_geometric.nn import EGConv, global_mean_pool
  from torch_geometric.typing import WITH_TORCH_SPARSE
label_desc: Use image node_id 1 to create a new Net object from inherited base classes: torch.nn with example: obj = Net(hidden_channels, num_layers, num_heads, num_bases)