code: def __init__(self, in_size, hid_size, out_size, heads):
      super().__init__()
      self.gat_layers = nn.ModuleList()
      # two-layer GAT
      self.gat_layers.append(
          dglnn.GATConv(
              in_size,
              hid_size,
              heads[0],
              feat_drop=0.6,
              attn_drop=0.6,
              activation=F.elu,
          )
      )
      self.gat_layers.append(
          dglnn.GATConv(
              hid_size * heads[0],
              out_size,
              heads[1],
              feat_drop=0.6,
              attn_drop=0.6,
              activation=None,
          )
      )
  
file_path: dgl/examples/pytorch/gat/train.py
imports: import argparse
  import dgl
  import dgl.nn
  import torch
  import torch.nn
  import torch.nn.functional
  from dgl import AddSelfLoop
  from dgl.data import CiteseerGraphDataset, CoraGraphDataset, PubmedGraphDataset
label_desc: Use image node_id 1 to create a new GAT object from inherited base classes: nn with example: obj = GAT(in_size, hid_size, out_size, heads)