code: def __init__(self, args):
      super(HeteroRGCN, self).__init__()
      self.args = args
      self.edge_type = self.args["edge_type"]
      self.out_key = self.args["out_key"]
      missing_keys = list(
          set(
              [
                  "features_num",
                  "num_class",
                  "num_layers",
                  "hidden",
                  "act",
                  "out_key",
                  "edge_type",
              ]
          )
          - set(self.args.keys())
      )
      if len(missing_keys) > 0:
          raise Exception("Missing keys: %s." % ",".join(missing_keys))
  
      self.num_layers = int(self.args["num_layers"])
  
      if not self.num_layers == len(self.args["hidden"]) - 1:
          LOGGER.warn(
              "Warning: layer size does not match the length of hidden units"
          )
  
      self.layers = nn.ModuleList()
      self.layers.append(
          HeteroRGCNLayer(
              self.args["features_num"],
              self.args["hidden"][0],
              self.edge_type,
          )
      )
      for i in range(self.num_layers - 2):
          self.layers.append(
              HeteroRGCNLayer(
                  self.args["hidden"][i],
                  self.args["hidden"][i + 1],
                  self.edge_type,
              )
          )
      self.layers.append(
          HeteroRGCNLayer(
              self.args["hidden"][-1],
              self.args["num_class"],
              self.edge_type,
          )
      )
  
file_path: AutoGL/autogl/module/model/dgl/hetero/HeteroRGCN.py
imports: import torch.nn
  import dgl.function
  from ..None import register_model
  from .base import BaseHeteroModelMaintainer
  from ..base import activate_func
  from .....utils import get_logger
label_desc: Use image node_id 1 to create a new HeteroRGCN object from inherited base classes: nn with example: obj = HeteroRGCN(args)