code: def training_step(self, data, batch_idx):
      y_hat = self(data.x, data.edge_index, data.batch)
      loss = F.cross_entropy(y_hat, data.y)
      self.train_acc(y_hat.softmax(dim=-1), data.y)
      self.log(
          "train_acc",
          self.train_acc,
          prog_bar=True,
          on_step=False,
          on_epoch=True,
      )
      return loss
  
file_path: pytorch_geometric/examples/pytorch_lightning/gin.py
imports: import os.path
  import pytorch_lightning
  import torch
  import torch.nn.functional
  from torchmetrics import Accuracy
  import torch_geometric.transforms
  from torch_geometric.data.lightning import LightningDataset
  from torch_geometric.datasets import TUDataset
  from torch_geometric.nn import GIN, MLP, global_add_pool
label_desc: Use image node_id 3 for calling the Model obj's underlying member method code with example usage: obj.training_step(data, batch_idx) and returns: loss