code: def __init__(
      self, in_channels, hidden_channels, out_channels, dropout
  ):
      super().__init__()
      self.dropout = dropout
  
      self.lin = Linear(in_channels, hidden_channels)
  
      self.convs = torch.nn.ModuleList()
      for i in range(2):
          conv = GATConv(
              hidden_channels, hidden_channels, dropout=dropout
          )
          norm = BatchNorm1d(hidden_channels)
          act = LeakyReLU()
          self.convs.append(
              DeepGCNLayer(
                  conv, norm, act, block="res+", dropout=dropout
              )
          )
  
      self.mem1 = MemPooling(
          hidden_channels, 80, heads=5, num_clusters=10
      )
      self.mem2 = MemPooling(80, out_channels, heads=5, num_clusters=1)
  
file_path: pytorch_geometric/examples/mem_pool.py
imports: import os.path
  import time
  import torch
  import torch.nn.functional
  from torch.nn import BatchNorm1d, LeakyReLU, Linear
  from torch_geometric.datasets import TUDataset
  from torch_geometric.loader import DataLoader
  from torch_geometric.nn import DeepGCNLayer, GATConv, MemPooling
label_desc: Use image node_id 1 to create a new Net object from inherited base classes: torch.nn with example: obj = Net(in_channels, hidden_channels, out_channels, dropout)