code: def __init__(self):
      super().__init__()
  
      self.node_emb = Embedding(21, 75)
      self.edge_emb = Embedding(4, 50)
  
      aggregators = ["mean", "min", "max", "std"]
      scalers = ["identity", "amplification", "attenuation"]
  
      self.convs = ModuleList()
      self.batch_norms = ModuleList()
      for _ in range(4):
          conv = PNAConv(
              in_channels=75,
              out_channels=75,
              aggregators=aggregators,
              scalers=scalers,
              deg=deg,
              edge_dim=50,
              towers=5,
              pre_layers=1,
              post_layers=1,
              divide_input=False,
          )
          self.convs.append(conv)
          self.batch_norms.append(BatchNorm(75))
  
      self.mlp = Sequential(
          Linear(75, 50), ReLU(), Linear(50, 25), ReLU(), Linear(25, 1)
      )
  
file_path: pytorch_geometric/examples/pna.py
imports: import os.path
  import torch
  import torch.nn.functional
  from torch.nn import Embedding, Linear, ModuleList, ReLU, Sequential
  from torch.optim.lr_scheduler import ReduceLROnPlateau
  from torch_geometric.datasets import ZINC
  from torch_geometric.loader import DataLoader
  from torch_geometric.nn import BatchNorm, PNAConv, global_add_pool
  from torch_geometric.utils import degree
label_desc: Use image node_id 1 to create a new Net object from inherited base classes: torch.nn with example: obj = Net()