code: def __init__(
      self, metadata, 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 metadata[1]
              }
          )
          self.convs.append(conv)
  
      self.lin = Linear(hidden_channels, out_channels)
  
file_path: pytorch_geometric/examples/hetero/hetero_conv_dblp.py
imports: import os.path
  import torch
  import torch.nn.functional
  import torch_geometric.transforms
  from torch_geometric.datasets import DBLP
  from torch_geometric.nn import HeteroConv, Linear, SAGEConv
label_desc: Use image node_id 1 to create a new HeteroGNN object from inherited base classes: torch.nn with example: obj = HeteroGNN(metadata, hidden_channels, out_channels, num_layers)