code: def forward(self, data):
      try:
          x = data.x
      except:
          print("no x")
          pass
      try:
          edge_index = data.edge_index
      except:
          print("no index")
          pass
      try:
          edge_weight = data.edge_weight
      except:
          edge_weight = None
          pass
  
      for i in range(self.num_layer):
          x = F.dropout(
              x, p=self.args["dropout"], training=self.training
          )
          x = self.convs[i](x, edge_index, edge_weight)
          if i != self.num_layer - 1:
              x = activate_func(x, self.args["act"])
  
      return F.log_softmax(x, dim=1)
  
file_path: AutoGL/autogl/module/model/pyg/gat.py
imports: import torch
  import torch.nn.functional
  from torch_geometric.nn import GATConv
  from .None import register_model
  from .base import BaseAutoModel, activate_func
  from ....utils import get_logger
label_desc: Use image node_id 2 for calling the GAT obj's underlying member method code with example usage: obj.forward(data) and returns: F