code: def __init__(
      self,
      G,
      node_dict,
      edge_dict,
      n_inp,
      n_hid,
      n_out,
      n_layers,
      n_heads,
      use_norm=True,
  ):
      super(HGT, self).__init__()
      self.node_dict = node_dict
      self.edge_dict = edge_dict
      self.gcs = nn.ModuleList()
      self.n_inp = n_inp
      self.n_hid = n_hid
      self.n_out = n_out
      self.n_layers = n_layers
      self.adapt_ws = nn.ModuleList()
      for t in range(len(node_dict)):
          self.adapt_ws.append(nn.Linear(n_inp, n_hid))
      for _ in range(n_layers):
          self.gcs.append(
              HGTLayer(
                  n_hid,
                  n_hid,
                  node_dict,
                  edge_dict,
                  n_heads,
                  use_norm=use_norm,
              )
          )
      self.out = nn.Linear(n_hid, n_out)
  
imports: import dgl
  import math
  import torch
  import torch.nn
  import torch.nn.functional
  import dgl.function
  from dgl.nn.functional import edge_softmax
label_desc: Use image node_id 1 to create a new HGT object from inherited base classes: nn with example: obj = HGT(G, node_dict, edge_dict, n_inp, n_hid, n_out, n_layers, n_heads, use_norm)