code: def __init__(
      self, num_nodes, in_channels, out_channels, num_relations
  ):
      super().__init__()
      self.convs = torch.nn.ModuleList(
          [
              GCNConv(in_channels, out_channels)
              for _ in range(num_relations)
          ]
      )
      self.M = torch.nn.Bilinear(out_channels, out_channels, 1)
      self.Z = torch.nn.Parameter(torch.empty(num_nodes, out_channels))
      self.reset_parameters()
  
file_path: pytorch_geometric/examples/hetero/dmgi_unsup.py
imports: import os.path
  import torch
  import torch.nn.functional
  from sklearn.linear_model import LogisticRegression
  from torch.optim import Adam
  import torch_geometric.transforms
  from torch_geometric.datasets import IMDB
  from torch_geometric.nn import GCNConv
label_desc: Use image node_id 1 to create a new DMGI object from inherited base classes: torch.nn with example: obj = DMGI(num_nodes, in_channels, out_channels, num_relations)