code: def __init__(
      self, edge_types, hidden_channels, out_channels, num_layers
  ):
      super().__init__()
  
      self.convs = torch.nn.ModuleList()
      for _ in range(num_layers):
          conv = HeteroConv(
              {
                  edge_type: SAGEConv((-1, -1), hidden_channels)
                  for edge_type in edge_types
              },
              aggr="sum",
          )
          self.convs.append(conv)
  
      self.lin = Linear(hidden_channels, out_channels)
  
file_path: pytorch_geometric/examples/hetero/hierarchical_sage.py
imports: import argparse
  import torch
  import torch.nn.functional
  from tqdm import tqdm
  import torch_geometric.transforms
  from torch_geometric.datasets import OGB_MAG
  from torch_geometric.loader import NeighborLoader
  from torch_geometric.nn import HeteroConv, Linear, SAGEConv
  from torch_geometric.utils import trim_to_layer
label_desc: Use image node_id 1 to create a new HierarchicalHeteroGraphSage object from inherited base classes: torch.nn with example: obj = HierarchicalHeteroGraphSage(edge_types, hidden_channels, out_channels, num_layers)