code: def __init__(self, in_size, out_size, num_heads, dropout):
      super().__init__()
  
      self.out_size = out_size
      self.num_heads = num_heads
  
      self.dropout = nn.Dropout(dropout)
      self.W = nn.Linear(in_size, out_size * num_heads)
      self.a_l = nn.Parameter(torch.zeros(1, out_size, num_heads))
      self.a_r = nn.Parameter(torch.zeros(1, out_size, num_heads))
      self.reset_parameters()
  
file_path: dgl/examples/sparse/gat.py
imports: import dgl.sparse
  import torch
  import torch.nn
  import torch.nn.functional
  from dgl.data import CoraGraphDataset
  from torch.optim import Adam
label_desc: Use image node_id 1 to create a new GATConv object from inherited base classes: nn with example: obj = GATConv(in_size, out_size, num_heads, dropout)